zoukankan      html  css  js  c++  java
  • lintcode-420-报数

    420-报数

    报数指的是,按照其中的整数的顺序进行报数,然后得到下一个数。如下所示:
    1, 11, 21, 1211, 111221, ...

    • 1 读作 "one 1" -> 11.
    • 11 读作 "two 1s" -> 21.
    • 21 读作 "one 2, then one 1" -> 1211.

    给定一个整数 n, 返回 第 n 个顺序。

    注意事项

    整数的顺序将表示为一个字符串。

    样例

    给定 n = 5, 返回 "111221".

    标签

    字符串处理 脸书

    思路

    看懂题,找到报数规律,就可以写出程序

    • n = 1,result = "1",这是初始数据
    • n = 2,result = "11",意味着上一个报数的结果是 "1个1"
    • n = 3,result = "21",意味着上一个报数的结果是 "2个1"
    • n = 4,result = "1211",意味着上一个报数的结果是 "1个2、1个1"
    • n = 5,result = "111221",意味着上一个报数的结果是 "1个1、1个2、2个1"
    • ...

    code

    class Solution {
    public:
        /*
         * @param n: the nth
         * @return: the nth sequence
         */
        string countAndSay(int n) {
            // write your code here
            if (n <= 0) {
                return string("");
            }
            string result("1");
            for (int i = 1; i < n; i++) {
                string temp;
                int count = 1, j;
                for (j = 0; j < result.size() - 1; j++) {
                    if (result[j] == result[j + 1]) {
                        count++;
                    }
                    else{
                        temp += ('0' + count);
                        temp += result[j];
                        count = 1;
                    }
                }
                if (j > 0 && result[j] == result[j - 1]) {
                    temp += ('0' + count);
                    temp += result[j];
                }
                else if (j == 0) {
                    temp += '1';
                    temp += result[j];
                }
                else {
                    temp += '1';
                    temp += result[j];
                }
                result = temp;
            }
            return result;
        }
    };
    
  • 相关阅读:
    [HDU3487]Play with Chain
    [HDU3436]Queue-jumpers
    [HDU2475]Box
    [HDU1890]RoboticSort
    [BZOJ1500]维修数列
    [POJ3580]SuperMemo
    [POJ3481]Double Queue
    [BZOJ1269]文本编辑器editor
    简单的sql注入
    图片马的制作以及菜刀的使用
  • 原文地址:https://www.cnblogs.com/libaoquan/p/7373639.html
Copyright © 2011-2022 走看看