五月集训 (第02天) —— 字符串

Posted 英雄哪里出来

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了五月集训 (第02天) —— 字符串相关的知识,希望对你有一定的参考价值。

文章目录

前言

        此为《英雄算法联盟:算法集训》的内容,具体内容详见:知识星球:英雄算法联盟
        欢迎大家积极在评论区留言发表自己的看法,知无不言,言无不尽,养成每天刷题的习惯,也可以自己发布优质的解题报告,供社区一同鉴赏,吸引一波自己的核心粉丝。
        希望大家先自己思考,如果实在没有想法,再看下面的算法思路,如果有思路但是写不出来,可以参考朋友圈中其他人的代码,总有一款是适合你的,关注一下他,取其之长,补给之短。
        今天集训的内容是:字符串

一、练习题目

题目链接难度
500. 键盘行★☆☆☆☆
1160. 拼写单词★☆☆☆☆
1047. 删除字符串中的所有相邻重复项★☆☆☆☆
1935. 可以输入的最大单词数★☆☆☆☆

二、算法思路

1、键盘行

        (1)对于每个单词,查找它每个字母对应到键盘的第几行,如果整个单词的行都是一样的,则是一个符合条件的单词,放入结果集合中即可。

2、拼写单词

        (1)遍历字母表,记录每个单词的出现次数。
        (2)遍历每个单词,记录该单词每个字符的出现次数,如果所有字符的出现次数都 ≤ 字母表,则将这个字符串的长度加到结果变量中,最后返回这个结果变量。

3、删除字符串中的所有相邻重复项

        (1)利用栈的思想。
        (2)遍历字符串,如果发现和栈顶元素一致,则弹出栈顶;否则,将当前元素压栈。
        (3)将所有栈中元素弹出放入一个字符串中,再逆序返回即可。

4、可以输入的最大单词数

        (1)切割字符串,对于每个字符串,如果其中没有坏掉的字符,则计数器加一,最后返回计数器。
        (2)为了方便切割,可以在原字符串末尾加上一个空格。

创作打卡挑战赛 赢取流量/现金/CSDN周边激励大奖

以上是关于五月集训 (第02天) —— 字符串的主要内容,如果未能解决你的问题,请参考以下文章

五月集训 (第04天) —— 贪心

五月集训 (第06天) —— 滑动窗口

五月集训(第18天) —— 树

五月集训(第14天) —— 栈

五月集训(第24天) —— 线段树

五月集训(第31天) —— 状态压缩