码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode 38 Count and Say(字符串规律输出)

时间:2017-03-11 15:55:29      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:das   代码   not   event   for   []   i++   ble   har   

 
1—>11—>21—>1211—>111221—>312211—>….
 
按照上面的规律进行求解出第n个字符串是什么。
 
规律:相连的数字有多少个然后添加上这个数字
 
参考代码: 
 
package leetcode_50;


/***
 * 
 * @author pengfei_zheng
 * 按照规律进行求解字符串
 */
public class Solution38 {
    public static String countAndSay(int n) {
        if(n<=0) {
            return "";
        }
        String s="1";
        int times = 1;
        while(times<n){
            s = getSay(s);
            times++;
        }
        return s;
    }
    private static String getSay(String s) {
        int count =0;
        StringBuilder str = new StringBuilder("");
        for(int i = 0; i<s.length(); i++){
            //first to add in order to prevent thinking about the index
            count ++;
            //not reach the end of s and next item is not equal to the pre item
            if ((i< s.length()-1) && (s.charAt(i) != s.charAt(i + 1))) {
                str = str.append(count).append(s.charAt(i));//rebuild the str
                count = 0;//reset count to zero
            }
            else if ((i == s.length()-1)) {//meet the end of s 
                str = str.append(count).append(s.charAt(i));
            }    
        }
        return str.toString();
    }
    public static void main(String[]args){
        String s = countAndSay(2);
        System.out.println(s);
    }
}

 

LeetCode 38 Count and Say(字符串规律输出)

标签:das   代码   not   event   for   []   i++   ble   har   

原文地址:http://www.cnblogs.com/zpfbuaa/p/6534914.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!