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.
https://oj.leetcode.com/problems/count-and-say/
如何数(shu 三声) 数(shu 四声)
1,11,21,1211,111221,312211,13112221,1113213211
先上AC代码,
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.
https://oj.leetcode.com/problems/count-and-say/
如何数(shu 三声) 数(shu 四声)
1,11,21,1211,111221,312211,13112221,1113213211
先上AC代码,
public class Solution {
String countAndSayForOneString(String input) {
char tmp = input.charAt(0);
int num = 1;
StringBuffer newString = new StringBuffer("");
for(int k=1;k<input.length();k++) {
if(input.charAt(k)==tmp) {
num++;
continue;
}
newString.append(Integer.toString(num) + tmp);
tmp = input.charAt(k);
num = 1;
}
newString.append(Integer.toString(num) + tmp);
return newString.toString();
}
public String countAndSay(int n) {
String result = "1";
int i = 1;
while(i<n) {
result = countAndSayForOneString(result);
i++;
}
return result;
}
}

本文介绍了一种特殊的整数序列——计数并描述序列的生成方法,并提供了一个高效的Java实现方案。通过迭代读取和计数的方式,该算法能够生成任意指定位置的序列。
497

被折叠的 条评论
为什么被折叠?



