您的位置:首页 > 其它

lintcode-easy-Count and Say

2016-02-24 17:31 260 查看
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
n
th sequence.

Example

Given n =
5
, return
"111221"
.

Note

The sequence of integers will be represented as a string.

思路也很直接,但是写的时候要注意数组index越界一类的问题

public class Solution {
/**
* @param n the nth
* @return the nth sequence
*/
public String countAndSay(int n) {
// Write your code here
if(n < 1)
return null;

if(n == 1)
return "1";

String prev = "1";
String next = "";

for(int i = 2; i <= n; i++){
char[] temp = prev.toCharArray();

int index = 0;
while(index < temp.length){
int count = 0;

count++;
index++;
while(index < temp.length && temp[index] == temp[index - 1]){
count++;
index++;
}
next = next + String.valueOf(count) + temp[index - 1];
}
prev = next;
next = "";
}

return prev;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: