0038_Count and Say

来源:互联网 发布:珠海广电网络营业厅 编辑:程序博客网 时间:2024/06/16 20:24

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, 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”

JAVA

方法一

  直接使用循环来做,注意控制好循环次数以及每次count的初始值即可。时间效率在1/2左右。

public class Solution {    public String countAndSay(int n) {        if (n < 1) {            return "";        }        String s = "1";        StringBuffer temp;        int count;        for (int i = 1; i < n; i++) {            temp = new StringBuffer();            count = 1;            for (int j = 1; j < s.length(); ++j) {                if (s.charAt(j - 1) == s.charAt(j)) {                    ++count;                } else {                    temp.append(count);                    temp.append(s.charAt(j - 1));                    count = 1;                }            }            temp.append(count);            temp.append(s.charAt(s.length() - 1));            s = temp.toString();        }        return s;    }}
原创粉丝点击