(字符串)count and say

  • https://www.nowcoder.com/practice/c5e8e84b62bb48398ec3c88153950fb5?tpId=46&tqId=29141&tPage=3&rp=3&ru=/ta/leetcode&qru=/ta/leetcode/question-ranking
  • 题意:这个题目的意思是,输入一个整数n,输出第n-1个字符串怎么读的串。
    输入n=1:“1”表示一个1
    输入n=2:读出这个“1”,一个1用"11"表示。输入n=3:读出"11",两个1,用"21"表示。
    依次类推,输入n,第n-1个字符串的读法。
  • 思路:这个题目很显然要用到迭代法,从第一个开始进行迭代。n进行循环处理,传入一个要读的字符串,将这个字符串循环处理,找到相同的字符并且计数,然后将他们加入字符串,返回一个读过的字符串即可。
  • 代码:
    class Solution {
    public:
        string countAndSay(int n) {
            if(n == 0)return string("");
            string res("1");
            for(int i = 1; i < n; i++) {
                res = build(res);
            }
            return res;
        }
        string build(const string& res) {
            string ret;
            int len = res.size();
            for(int i = 0; i < len; i++) {
                int count = 1;
                char x = res[i];
                while(i < len && res[i+1]==x) {
                    count++;
                    i++;
                }
                ret.push_back(count+‘0‘);
                ret.push_back(x);
            }
            return ret;
        }
    };
时间: 2024-10-12 22:36:51

(字符串)count and say的相关文章

Python3基础 字符串 count 得到一个字符串出现的次数

镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.------------------------------------------ code: myStr='HELLOHELLO' count=myStr.count('LO') #查找myStr字符串中 'LO'字符串出现的次数 print(count) result: ============= RESTART: C:/Users/Administrator/Des

python数字、字符串、字典 、列表 、元祖、集合的一些使用方法

数字: int     整数       作用:年龄.等级.薪资.身份证.QQ号 float 浮点型     作用:带小数 *****以后看到self当到没看见 --------------------------------------------------- 字符串: 作用:名字,性别,国籍,地址等描述信息 定义:在引号.双引号.三引号内,由一串字符组成 name='elroy' 只能存一个值 常用操作: 移除空白strip: name=input("username:") pr

Python学习笔记-Day2-Python基础之字符串操作22222222222222222222222222222222

字符串的常用操作包括但不限于以下操作: 字符串的替换.删除.截取.复制.连接.比较.查找.分割等 这里将对字符串的内置操作方法进行总结归纳,重点是以示例的方式进行展示. 使用type获取创建对象的类 type(name) 使用dir获取类的成员dir(name) 使用vars获取类的成员和各个成员的值   1.    str.capitalize    返回首字母大写,其他字母小写的字符串   2.    str.casefold    字符串转换成小写,用于不区分大小写的字符串比较   3. 

字符串:各种奇葩的内置方法

一.字符串可以像列表和索引一样进行一些序列操作,比如切片.索引. >>> str1 = '林深处' >>> str1[:2] '林深' >>> str2 = 'Happy New Year' >>> str2[3:5] 'py' 同样字符串跟元组一样是不可变的,所以只能用切片.插入.再覆盖变量名的形式来更新字符串. >>> str1 = '林深处' >>> str1 = str1[:1] + '[插

Python中字符串的方法及注释

先整理到这里:用的时候便于查询.相当于自己的资料库吧. capitalize()   把字符串的第一个字符改为大写 casefold()   把整个字符串的所有字符改为小写 center(width)   将字符串居中,并使用空格填充至长度width的新字符串 count(sub[,start[,end]])   返回sub在字符串里边出现的次数,start和end参数表示范围,可选. encode(encoding='utf-8', errors='strict')   以encoding指定

Python数据类型方法简介一————字符串的用法详解

符串是Python中的重要的数据类型之一,并且字符串是不可修改的. 字符串就是引号(单.双和三引号)之间的字符集合.(字符串必须在引号之内,引号必须成对) 注:单.双和三引号在使用上并无太大的区别: 引号之间可以采取交叉使用的方式避免过多转义: 单.双引号实现换行必须使用续行符,而三引号可直接续行不必使用续行符号. a. count,统计字符或子字符串在字符串中出现的次数 格式:S.count(sub[, start[, end]]) -> int sub 是字符串中要查询的子字符串  star

python中常用的一些字符串

capitalize() 把字符串的第一个字符改为大写 casefold() 把整个字符串的所有字符改为小写 center(width) 将字符串居中,并使用空格填充至长度 width 的新字符串 count(sub[, start[, end]]) return sub 在字符串里边出现的次数,start 和 end 参数表示范围,可选. encode(encoding='utf-8', errors='strict') 以 encoding 指定的编码格式对字符串进行编码. endswith

swift 字符串包含

swift的String类没有contains这样类型的方法来直接判断字符串中是否包含另一段字符串,但是,可以变通的来实现. 直接上代码: if "这是一段字符串".componentsSeparatedByString("字符串").count > 0 { println("包含") } else { println("不包含") } 简单说一下: componentsSeparatedByString方法是将字符串分

Java 字符串计算频率出现最高的字符

public class HighFrequencyWord { public static void findFrequencyWord(String str) { Collection<Integer> al=new ArrayList<Integer>(); Map<String,Integer> map=new HashMap<String,Integer>(); String tempStr = str; String[] stringArray

【Python扩展阅读【转】】字符串的方法及注释

  capitalize()   把字符串的第一个字符改为大写   casefold()   把整个字符串的所有字符改为小写   center(width)   将字符串居中,并使用空格填充至长度width的新字符串   count(sub[,start[,end]])   返回sub在字符串里边出现的次数,start和end参数表示范围,可选.   encode(encoding='utf-8', errors='strict')   以encoding指定的编码格式对字符串进行编码.   e