题目:一开始没看懂,
后头经过WA发现 输出 的意义 是 出现的次数+值。
1 => 一个1 => 11
11 => 两个1 => 21
111=> 三个1 => 31
。。。依次类推
思路:用两个变量current和next,存储相邻元素的值,如果相同,往下移一位,此时计数器count++ , 直到current与next不同为止。输出 count + current。然后直到字符串结束即可。
代码:
1 public String countAndSay(int n) { 2 String s = "1"; 3 String help = new String(); 4 int count = 1; 5 char current,next; 6 7 while(n > 1){ 8 9 for(int i = 0 ; i < s.length() ; i++){ 10 current = s.charAt(i); 11 if(i + 1 < s.length()){ 12 next = s.charAt(i + 1); 13 if(current == next){ 14 count++; 15 continue; 16 } 17 } 18 help += "" + count + current; 19 count = 1; 20 } 21 s = help; 22 help = ""; 23 n--; 24 } 25 return s; 26 }