Intelligrape Interview Question
Java DevelopersCountry: United States
Interview Type: In-Person
wrong code
public class Print {
public static void main(String[] args) {
int[] inputArray = {-5,2,-3,4,1};
int min = findMin(inputArray);
for(int i=0;i<inputArray.length;i++){
if(inputArray[i] > 0) {
for(int j=min;j<inputArray[i];j++){
if(j<0)
System.out.print(" ");
else
System.out.print("*");
}
}
else{
for(int j=min;j<0;j++){
if(j<inputArray[i])
System.out.print(" ");
else
System.out.print("*");
}
}
System.out.println();
}
}
public static int findMin(int[] array) {
int minInt = array[0];
for(int i=1;i<array.length;i++) {
if(array[i] < minInt)
{minInt=array[i];}
}
return minInt;
}
}
public static void printStars(int[] inputArray) {
for (int value : inputArray) {
System.out.println((value<0?"":" ")+(new char[value<0?-value:value]).toString().replace("\0", "*"));
}
}
public static final void main(String[] args) {
int[] arr = {5,2,-3,4,1};
printStars(arr);
}
wrong one:
System.out.println((value<0?"":" ")+new String (new char[value<0?-value:value]).replace("\0", "*"));
private static void printArray(int[] inputArray) {
String [] tempArrayA = new String[inputArray.length];
String max = "";
for (int i = 0; i < inputArray.length; i++) {
if(inputArray[i]<0){
tempArrayA[i] ="";
for (int j = inputArray[i]; j < 0; j++) {
tempArrayA[i] = tempArrayA[i] +" ";
}
if(max.length()<tempArrayA[i].length()){
max = tempArrayA[i];
}
}else{
tempArrayA[i] ="";
for (int j = 0; j < inputArray[i]; j++) {
tempArrayA[i] = tempArrayA[i] +"*";
}
}
}
for (int i = 0; i < tempArrayA.length; i++) {
if(tempArrayA[i].contains("*"))
System.out.println(max + tempArrayA[i]);
else
System.out.println(tempArrayA[i]);
}
}
class New
{
public static void main(String args[])
{
int a[]={5,2,-3,4,1};
int min=a[0];
int spc=0;
for(int i=0;i<a.length;i++)
{
if(a[i]<min)
{
min=a[i];
}
}
System.out.println(min+"");
spc=min*-1;
System.out.println(spc+"");
for(int i=0;i<a.length;i++)
{ if(a[i]!=min)
{
for(int k=0;k<spc;k++)
{
System.out.print("_");
}
//System.out.println();
for(int j=0;j<a[i];j++)
{
System.out.print("*");
}
System.out.println();
}
else
{
for(int k=0;k<spc;k++)
{
System.out.print("*");
}
System.out.println();
}
}
}
}
package practice;
public class Test {
public static void main(String a[]){
int arr[] = {5,2,-3,4,1};
int m = arr[0];
int val;
for(int i = 1;i < arr.length;i++){
if(arr[i]<m){
m=arr[i];
}
}
m = m*(-1);
for(int i=0;i<arr.length;i++){
if(arr[i]>0){
val=arr[i];
for(int j=1;j<=m;j++){
System.out.print("_");
}
}else{
val=arr[i]*-1;
for(int j=1;j<=m+arr[i];j++){
System.out.print("_");
}
}
for(int j=0;j<val;j++){
System.out.print("*");
}
System.out.println();
}
}
}
Not very clean, but does the work..
Integer[] a = {5,2,-3,4,1};
Integer smallest = a[0];
for(int x = 0 ;x<a.length;x++)
{
if(smallest>a[x])
{
smallest = a[x];
}
}
if(smallest<0)
{
smallest = smallest*(-1);
}
for(int x=0;x<a.length;x++)
{
System.out.println("\n");
if(a[x]>0)
{
for(int y = 0;y<smallest;y++)
{
System.out.print(" ");
}
for(int y = 0 ; y< a[x];y++)
{
System.out.print("*");
}
}else if(a[x]<0)
{
Integer value = a[x]*(-1);
Integer blanks = smallest - value;
for(int y = 0;y<blanks;y++)
{
System.out.print(" ");
}
for(int y = 0 ; y< value;y++)
{
System.out.print("*");
}
}
}
Not very clean, but does the work..
Integer[] a = {5,2,-3,4,1};
Integer smallest = a[0];
for(int x = 0 ;x<a.length;x++)
{
if(smallest>a[x])
{
smallest = a[x];
}
}
if(smallest<0)
{
smallest = smallest*(-1);
}
for(int x=0;x<a.length;x++)
{
System.out.println("\n");
if(a[x]>0)
{
for(int y = 0;y<smallest;y++)
{
System.out.print(" ");
}
for(int y = 0 ; y< a[x];y++)
{
System.out.print("*");
}
}else if(a[x]<0)
{
Integer value = a[x]*(-1);
Integer blanks = smallest - value;
for(int y = 0;y<blanks;y++)
{
System.out.print(" ");
}
for(int y = 0 ; y< value;y++)
{
System.out.print("*");
}
}
}
Integer[] a = {5,2,-3,4,1};
Integer smallest = a[0];
for(int x = 0 ;x<a.length;x++)
{
if(smallest>a[x])
{
smallest = a[x];
}
}
if(smallest<0)
{
smallest = smallest*(-1);
}
for(int x=0;x<a.length;x++)
{
System.out.println("\n");
if(a[x]>0)
{
for(int y = 0;y<smallest;y++)
{
System.out.print(" ");
}
for(int y = 0 ; y< a[x];y++)
{
System.out.print("*");
}
}else if(a[x]<0)
{
Integer value = a[x]*(-1);
Integer blanks = smallest - value;
for(int y = 0;y<blanks;y++)
{
System.out.print(" ");
}
for(int y = 0 ; y< value;y++)
{
System.out.print("*");
}
}
}
import java.util.*;
public class pattern
{
public static void main(String[] args) {
//code
int []arr={5,2,-3,4,1};
int i,j;
for(i=0;i<5;i++)
{
j=0;
if(arr[i]>0)
{
System.out.print("::");
while(j<arr[i])
{
System.out.print("*");
j++;
}
}
else
{
while(j<(-1*arr[i]))
{
System.out.print("*");
j++;
}
}
System.out.println();
}
}
}
class Pattern12
{
public static void main(String args[])
{
int i,j,k;
int a[]={5,2,-3,4,1};
int l=a.length;
for(i=0;i<l;i++)
{
if(a[i]>=0)
{
for(j=0;j<2;j++)
{
System.out.print("_");
}
for(k=0;k<a[i];k++)
{
System.out.print("*");
}
System.out.println("");
}
else
{
for(j=a[i];j<0;j++)
{
System.out.print("*");
}
System.out.println("");
}
}
}
}
class Pattern12
{
public static void main(String args[])
{
int i,j,k;
int a[]={5,2,-3,4,1};
int l=a.length;
for(i=0;i<l;i++)
{if(a[i]>=0)
{for(j=0;j<2;j++)
{System.out.print("_");}
for(k=0;k<a[i];k++)
{System.out.print("*");}
System.out.println("");}
else
{
for(j=a[i];j<0;j++)
{System.out.print("*");}
System.out.println("");
}}}}
I'm guessing they want this to be flexible to accept larger negative values (e.g. what happens when the input array contains -4?). So,
1) find the minimum of the input array, if not negative, use 0.
2) print line by line
- john madden john madden john madden October 10, 2014