2013-03-29 73 views
0

我要插入空格,如圖所需的輸出左上角以及右上角的三角形

input string :abc

required output: 

abcabc 
ab--bc 
a----c 
But mine comes as 
abcabc 
abbc 
ac 

public static void triangle(String s){ 

    int length = s.length(); 

    for(int i=0;i<2*length;i++){ 
     System.out.println(); 

     for(int j=0;j<length-i;j++){ 
      System.out.print(" "+s.charAt(j)); 
     }     
     for(int k=i;k<length;k++){ 
      System.out.print(" "+s.charAt(k));  
     }  
    } 

} 

任何幫助,將有助於我 任何備用解決方案/幫助也將不勝感激

+0

永遠做你的算法中的一個預演。錯誤將自行出現。一旦你得到了你的問題的正確答案,你必須接受答案或如果你滿意的話投票。 – Avik

回答

1

或只是循環:)

for (int i = 0; i < s.length(); i++) { 
    for (int j = 0; j < s.length()-i; j++) { 
     System.out.print(s.charAt(j)); 
    } 
    for (int j = s.length()-i; j < s.length(); j++) { 
     System.out.print(" "); 
    } 
    for (int j = 0; j < i; j++) { 
     System.out.print(" "); 
    } 
    for (int j = i; j < s.length(); j++) { 
     System.out.print(s.charAt(j)); 

    } 
    System.out.println(""); 
} 
+0

謝謝...以不同的方式 – Abs

1
public static void triangle(String s){ 
    int length = s.length(); 
    for(int i=0;i<length;i++){ 
     System.out.println(); 
     int j=0; 
      while(j<length-i){ 
       System.out.print(s.charAt(j)); 
       j++; 
      } 
      while(j<length){ 
       System.out.print(" "); 
       j++; 
      } 
     int k=0; 
     while(k<i){ 
      System.out.print(" "); 
      k++; 
     } 
     while(k<length){ 
       System.out.print(s.charAt(k)); 
       k++; 
     } 
}} 

將它置於while循環之下。

相關問題