|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- The count-and-say sequence is the sequence of integers with the first five terms as following:
- 1. 1
- 2. 11
- 3. 21
- 4. 1211
- 5. 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 where 1 ≤ n ≤ 30, generate the nth term of the count-and-say sequence.
- Note: Each term of the sequence of integers will be represented as a string.
-
- Example 1:
- Input: 1
- Output: "1"
- Example 2:
- Input: 4
- Output: "1211"
复制代码
- class Solution {
- public static String countAndSay(int n) {
-
- if(n == 0) return "";
-
- if(n == 1) return "1";
-
- ArrayList <String> array = new ArrayList<>();
-
- array.add("1");
-
- array.add("11");
-
- for(int i = 2 ; i < n ; i++){
-
- String res = "";
-
- for(int j = 1; j<= array.get(array.size()-1).length(); ){
-
- String s = array.get(array.size()-1);
-
- int count = 1;
-
- char a = s.charAt(j-1);
-
- while(count < s.length() && j < s.length() && s.charAt(j) == a ){
-
- j++;
- count++;
- }
-
-
- res = res + count + a;
-
- j++;
- }
-
- if(res != null) {
-
- array.add(res);
- }
-
-
- }
-
- return array.get(array.size()-1);
-
- }
- }
复制代码 |
|