美文网首页
38. 外观数列

38. 外观数列

作者: justonemoretry | 来源:发表于2020-07-08 23:04 被阅读0次

    自己解法

    这个题其实就是如果有重复的数字,就给出重复数字的数目加字符,数字减1,递归,直到数字为0。用StringBuilder可以加速。

    class Solution {

        public String countAndSay(int n) {

            return getString("1", n - 1);

        }

        private String getString(String s, int n) {

            if (n == 0) {

                return s;

            }

            char pre = s.charAt(0);

            int number = 1;

            StringBuilder sb = new StringBuilder();

            for (int i = 1; i < s.length(); i++) {

                if (pre == s.charAt(i)) {

                    number++;

                } else {

                    sb.append(number). append(pre);

                    number = 1;

                    pre = s.charAt(i);

                }

            }

            sb.append(number).append(pre);

            return getString(sb.toString(), --n);

        }

    }

    相关文章

      网友评论

          本文标题:38. 外观数列

          本文链接:https://www.haomeiwen.com/subject/zwckcktx.html