标签:
The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 111221, ...
1
is read off as "one 1"
or 11
.11
is read off as "two 1s"
or 21
.21
is read off as "one 2
, then one 1"
or 1211
.
Given an integer n, generate the nth sequence.
Note: The sequence of integers will be represented as a string.
博主没睡醒。。。自己给该题增加的难度。。。可以从n开始n,1n...不一定从1,11,21... 但是思路是一样的
package leetcode2; public class CountandSay { public static String countSay(int n){ // return count(n,n) ; String[] s=new String[n]; s[0]=""+n; String sub=s[0]; // System.out.println(s[0]); for(int j1=1;j1<n;j1++){ StringBuilder snext=new StringBuilder(); int i=1; int count=1; while(i<sub.length()){ if(sub.charAt(i)==sub.charAt(i-1)){ count++; i++; }else{ snext=snext.append(count); snext=snext.append(sub.charAt(i-1)); i++; count=1; } } snext=snext.append(count); snext=snext.append(sub.charAt(i-1)); sub=snext.toString(); } return sub; } public static void main(String[] args) { // TODO Auto-generated method stub System.out.print(countSay(4)); } }
标签:
原文地址:http://www.cnblogs.com/joannacode/p/4391439.html