2011-03-20 36 views
0

我想打印內部parenteses與重複號的數組,怎麼什麼想法?Java的如何打印數組內的重複數「()」

陣列:

{2,4,5,5,5,7,1,1,4} 

我需要打印爲:

24(555)7(11)4 

這裏是我的僞代碼:

boolean inRun = false; 
for loop; 
if (inRun); 
if values[i] != the preceding value, print ")"; 
inRun = false; 
if(!inRun) 
if values[i] = the following value, print "(" 
inRun = true; 
System.out.print([i]) 
if inRun, print ")" 
+1

這聞起來像家庭作業.. – Bartzilla 2011-03-20 17:29:52

+0

是固定的任何給定的輸入數字的輸出格式? – Deepak 2011-03-20 17:31:37

+2

我們在這裏不是完全做你的(家庭)對你的工作,但我們來這裏是爲了幫助你找出你被困在的問題。發佈您迄今爲止嘗試過的任何代碼。顯示你已經做出了一些努力。 – 2011-03-20 17:33:38

回答

1
import java.util.Arrays; 

public class Test{ 
    public static void main(String[] args){ 


     int arr[] = new int[5]; 
     arr[0] = 5; 
     arr[1] = 3; 
     arr[2] = 2; 

     arr[3] = 2; 

     arr[4] = 3; 


     Arrays.sort(arr); 
     System.out.print("(" + arr[0]); 
     for (int i=1; i<arr.length;i++) { 
      if(arr[i] == arr[i-1]) { 
       System.out.print(arr[i]); 
      } 
      else { 
       System.out.print(")(" + arr[i]); 
      } 
     } 

     System.out.print(")"); 
    } 
} 

輸出:(22)(33)(5)

0

在這裏你去:

int arr[] = {2,4,5,5,5,7,1,1,4,4}; 
    StringBuilder sb = new StringBuilder(); 
    boolean repeat = false; 
    for (int i=0; i<arr.length; i++) { 
     if (!repeat && (i+1) < arr.length && arr[i] == arr[i+1]) { 
      sb.append('('); 
      repeat = true; 
     } 

     sb.append(arr[i]); 

     if (repeat && (i+1) < arr.length && arr[i] != arr[i+1]) { 
      sb.append(')'); 
      repeat = false; 
     } 

     if (repeat && i == arr.length-1) 
      sb.append(')'); 

    } 
    // prints 24(555)7(11)(44) 
    System.out.println(sb); 
+0

anuubhavas代碼工作fine.why你人約downvote他 – Deepak 2011-03-20 17:50:47

+0

+1 downvote的很好的例子 – Deepak 2011-03-20 17:51:20

+0

也不太清楚......我只是寫了這個代碼在一個瞬間,沒有任何IDE的支持,因爲我是用朋友的電腦。 – anubhava 2011-03-20 18:01:48