![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
字符串
文章平均质量分 54
answer_yym
且随疾风前行
展开
-
字符串s构造前缀树,并判断p是否属于s的子串
输入:vec = {“hello”, “world”, “hey”, “hi”} p = “hell”根据几个单词,构造一个前缀树,再给定一个单词p,判断p是否属于s的前缀。原创 2024-07-11 14:42:47 · 133 阅读 · 0 评论 -
字符串匹配
给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。输入:haystack = “leetcode”, needle = “leeto”输入:haystack = “sadbutsad”, needle = “sad”解释:“leeto” 没有在 “leetcode” 中出现,所以返回 -1。解释:“sad” 在下标 0 和 6 处匹配。第一个匹配项的下标是 0 ,所以返回 0。时间O(m + n)原创 2024-07-11 11:00:55 · 142 阅读 · 0 评论 -
罗马数字相互转换
通常情况下,罗马数字中小的数字在大的数字的右边。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。同样地,数字 9 表示为 IX。例如, 罗马数字 2 写做 II ,即为两个并列的 1。C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900。X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。罗马转数字,遍历字符串,分类讨论,直接写。原创 2024-07-10 10:38:48 · 287 阅读 · 0 评论 -
华为笔试题
S 长度\u003C=100,L 长度\u003C=500,000。(例如,S=”ace”是 L=”abcde”的一个子序列且有效字符是 a、c、e,S 长度\u003C=100,L 长度\u003C=500,000。给定一个正整数n,如果能够分解为m(m > 1)个连续正整数之和,且k = { n - [m * (m -1) / 2] } / m。S 中的每个字符在 L 中都能找到(可以不连续),输出,21=10+11,是最短的分解序列。先输入 S,再输入 L,每个字符串占一行。输入输出示例仅供调试。原创 2024-07-08 16:20:52 · 368 阅读 · 0 评论 -
截取字符串前K个单词
1、描述句子 是一个单词列表,列表中的单词之间用单个空格隔开,且不存在前导或尾随空格。每个单词仅由大小写英文字母组成(不含标点符号)。例如,“Hello World”、“HELLO” 和 “hello world hello world” 都是句子。给你一个句子 s 和一个整数 k ,请你将 s 截断 ,使截断后的句子仅含 前 k 个单词。返回 截断 s 后得到的句子。示例 1:输入:s = “Hello how are you Cont原创 2021-12-06 09:43:43 · 258 阅读 · 0 评论 -
猜数字游戏
1、描述你在和朋友一起玩 猜数字(Bulls and Cows)游戏,该游戏规则如下:写出一个秘密数字,并请朋友猜这个数字是多少。朋友每猜测一次,你就会给他一个包含下述信息的提示:猜测数字中有多少位属于数字和确切位置都猜对了(称为 “Bulls”, 公牛),有多少位属于数字猜对了但是位置不对(称为 “Cows”, 奶牛)。也就是说,这次猜测中有多少位非公牛数字可以通过重新排列转换成公牛数字。给你一个秘密数字 secret 和朋友猜测的数字 guess ,请你返回对朋友这次猜测的提示。提示的格式为原创 2021-11-08 09:24:41 · 1659 阅读 · 0 评论 -
判回文串 & 求一个字符串的最长回文串
1、描述如题2、关键字最长、回文串,3、思路中心扩散4、notes写写试试5、复杂度时间;O(N平方)空间:O(1)6、codeclass Solution {public: string center(string s,int c1, int c2){ int l = c1; int r = c2; int n = s.size(); while(l >= 0 && r <n &原创 2021-10-20 20:33:26 · 138 阅读 · 0 评论 -
字符串最后一个单词的长度 & 反转字符串中的单词
文章目录1、描述2、关键字3、思路4、notes5、复杂度6、code1、描述给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。示例 1:输入:s = “Hello World”输出:5示例 2:输入:s = " fly me to the moon "输出:4来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/leng原创 2021-09-21 09:52:29 · 228 阅读 · 0 评论 -
c++实现atoi【string转成整数或者浮点数】
6、codeclass Solution {public: int myAtoi(string str) { const char *p = str.c_str(); for(; p != nullptr && *p == ' '; p++) {} if(p == nullptr || (*p != '+' && *p != '-' && (*p < '0' || *p > '9')))原创 2021-09-17 16:22:02 · 192 阅读 · 0 评论 -
通过删除字母匹配到字典里最长单词
文章目录1、描述2、关键字3、思路4、noets5、复杂度6、code1、描述给你一个字符串 s 和一个字符串数组 dictionary 作为字典,找出并返回字典中最长的字符串,该字符串可以通过删除 s 中的某些字符得到。如果答案不止一个,返回长度最长且字典序最小的字符串。如果答案不存在,则返回空字符串。示例 1:输入:s = “abpcplea”, dictionary = [“ale”,“apple”,“monkey”,“plea”]输出:“apple”示例 2:输入:s = “abpc原创 2021-09-14 19:23:36 · 141 阅读 · 0 评论 -
根据字符出现的频次排序
文章目录1、描述2、关键字&思路4、notes5、复杂度6、code1、描述给定一个字符串,请将字符串里的字符按照出现的频率降序排列。示例 1:输入:“tree”输出:“eert”解释:'e’出现两次,'r’和’t’都只出现一次。因此’e’必须出现在’r’和’t’之前。此外,"eetr"也是一个有效的答案。来源:力扣(LeetCode)链接:著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。2、关键字&思路字符频次,-----> hash原创 2021-09-13 13:04:25 · 780 阅读 · 0 评论 -
带*的括号匹配
1、描述给定一个只包含三种字符的字符串:( ,) 和 *,写一个函数来检验这个字符串是否为有效字符串。有效字符串具有如下规则:任何左括号 ( 必须有相应的右括号 )。任何右括号 ) 必须有相应的左括号 ( 。左括号 ( 必须在对应的右括号之前 )。可以被视为单个右括号 ) ,或单个左括号 ( ,或一个空字符串。一个空字符串也被视为有效字符串。示例 1:输入: “()”输出: True示例 2:输入: “(*)”输出: True示例 3:输入: “(*))”输出: True原创 2021-09-12 14:45:43 · 947 阅读 · 1 评论 -
最长公共前缀
文章目录1、描述2、关键字3、思路4、notes5、复杂度6、code1、描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入:strs = [“flower”,“flow”,“flight”]输出:“fl”示例 2:输入:strs = [“dog”,“racecar”,“car”]输出:""解释:输入不存在公共前缀。来源:力扣(LeetCode)链接:著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。2、关键原创 2021-09-08 16:50:59 · 85 阅读 · 0 评论 -
字符串转数字
@[tco]1、描述请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。函数 myAtoi(string s) 的算法如下:读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。将前面步骤读入的这些数字转换为原创 2021-09-02 16:06:08 · 3188 阅读 · 0 评论 -
比较版本号
文章目录1、描述2、关键字3、思路4、notes5、复杂度6、code1、描述给你两个版本号 version1 和 version2 ,请你比较它们。版本号由一个或多个修订号组成,各修订号由一个 ‘.’ 连接。每个修订号由 多位数字 组成,可能包含 前导零 。每个版本号至少包含一个字符。修订号从左到右编号,下标从 0 开始,最左边的修订号下标为 0 ,下一个修订号下标为 1 ,以此类推。例如,2.5.33 和 0.1 都是有效的版本号。比较版本号时,请按从左到右的顺序依次比较它们的修订号。比较修订号原创 2021-09-01 10:09:03 · 125 阅读 · 0 评论 -
字符串按需要翻转。
1、描述输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。示例 1:输入: “the sky is blue”输出: “blue is sky the”示例 2:输入: " hello world! "输出: “world! hello”解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。来源:力扣(LeetCod原创 2021-08-26 22:24:26 · 100 阅读 · 0 评论 -
二进制求和
文章目录1、描述2、关键字3、思路4、notes5、复杂度6、code1、描述二进制求和给你两个二进制字符串,返回它们的和(用二进制表示)。输入为 非空 字符串且只包含数字 1 和 0。示例 1:输入: a = “11”, b = “1”输出: “100”示例 2:输入: a = “1010”, b = “1011”输出: “10101”2、关键字二进制加法,3、思路大数相加的思路,4、notes去看:大数相加练习题5、复杂度时间:O(N)空间:O(1)6、co原创 2021-08-19 21:00:15 · 609 阅读 · 0 评论 -
大数相加的一个练习题,
1、描述大数相加3、思路使用一个变量power=0来初始化进位。从后往前累加。如果长度不齐,就添0,4|notes// c++默认从char—>int 是c - ‘0’ 实现字符c从字符变成 整数int// int —> char int num = 7 , auto elem = num + ‘0’ elem类型是char6、codeclass Solution {public:// c++默认从char--->int 是c - '0' 实现字符c从字符变原创 2021-08-14 11:52:05 · 147 阅读 · 0 评论 -
判回文串字符数
#1描述:输入一串字符,输出能构成回文串的最大个数:#2思路 1、模除判奇偶,把偶数全部累加起来,奇数n时加上 n-12、构hash , 前一个key 可以是字符后一个value 可以是数值#3notes:1、undered_map<char,int>hash;2、for ( auto a: s) 自动类型匹配auto#4代码# 5时间复杂度分析:最...原创 2020-03-20 11:02:04 · 138 阅读 · 0 评论 -
字符串压缩
#1、字符串aabcccccaaa会变为a2b1c5a3"abbccd"压缩后为"a1b2c2d1",比原字符串长度更长,输出之前原串#2、解题思路:1、双指针记录每次重复的个数2、使用str+=S[i];节省内存3、S.length(),返回长度4、不知道每次的长度,所以使用while()#、3代码classSolution{public:...原创 2020-03-16 14:39:37 · 172 阅读 · 0 评论 -
第一个出现一次的字符
文章目录1、描述2、关键字3、思路4、notes5、复杂度6、code1、描述在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。示例:s = “abaccdeff”返回 “b”s = “”返回 " "来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/di-yi-ge-zhi-chu-xian-yi-ci-de-zi-fu-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处原创 2021-06-02 17:05:45 · 57 阅读 · 0 评论 -
1190. 反转每对括号间的子串
1、描述给出一个字符串 s(仅含有小写英文字母和括号)。请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结果。注意,您的结果中 不应 包含任何括号。示例 1:输入:s = “(abcd)”输出:“dcba”示例 2:输入:s = “(u(love)i)”输出:“iloveu”来源:力扣(LeetCode)[链接][https://leetcode-cn.com/problems/reverse-substrings-between-each-pair-of-pa原创 2021-05-26 09:43:51 · 76 阅读 · 0 评论 -
字符串打印机
1、描述有台奇怪的打印机有以下两个特殊要求:打印机每次只能打印由 同一个字符 组成的序列。每次可以在任意起始和结束位置打印新字符,并且会覆盖掉原来已有的字符。给你一个字符串 s ,你的任务是计算这个打印机打印它需要的最少打印次数。示例 1:输入:s = “aaabbb”输出:2解释:首先打印 “aaa” 然后打印 “bbb”。来源:力扣(LeetCode)链接著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。2、关键字字符串,覆盖打印3、思路dp一个题解分析原创 2021-05-24 10:07:03 · 186 阅读 · 0 评论 -
不相交的线,
1、描述在两条独立的水平线上按给定的顺序写下 nums1 和 nums2 中的整数。现在,可以绘制一些连接两个数字 nums1[i] 和 nums2[j] 的直线,这些直线需要同时满足满足:nums1[i] == nums2[j]且绘制的直线不与任何其他连线(非水平线)相交。请注意,连线即使在端点也不能相交:每个数字只能属于一条连线。以这种方法绘制线条,并返回可以绘制的最大连线数。来源:力扣(LeetCode)链接著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。2、关原创 2021-05-21 14:33:14 · 137 阅读 · 0 评论 -
692. 前K个高频单词
1、描述给一非空的单词列表,返回前 k 个出现次数最多的单词。返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率,按字母顺序排序。示例 1:输入: [“i”, “love”, “leetcode”, “i”, “love”, “coding”], k = 2输出: [“i”, “love”]解析: “i” 和 “love” 为出现次数最多的两个单词,均为2次。注意,按字母顺序 “i” 在 “love” 之前。来源:力扣(LeetCode)链接:https://leetc原创 2021-05-20 23:16:46 · 61 阅读 · 0 评论 -
字符串替换其中的问号e
文章目录1、目录2、关键字3、思路4、notes5、复杂度6、code1、目录给你一个仅包含小写英文字母和 ‘?’ 字符的字符串 s,请你将所有的 ‘?’ 转换为若干小写字母,使最终的字符串不包含任何 连续重复 的字符。注意:你 不能 修改非 ‘?’ 字符。题目测试用例保证 除 ‘?’ 字符 之外,不存在连续重复的字符。在完成所有转换(可能无需转换)后返回最终的字符串。如果有多个解决方案,请返回其中任何一个。可以证明,在给定的约束条件下,答案总是存在的。来源:力扣(LeetCode)链接著作原创 2021-03-22 22:49:23 · 408 阅读 · 0 评论 -
字节字符串去重001
1、描述我叫王大锤,是一家出版社的编辑。我负责校对投稿来的英文稿件,这份工作非常烦人,因为每天都要去修正无数的拼写错误。但是,优秀的人总能在平凡的工作中发现真理。我发现一个发现拼写错误的捷径:三个同样的字母连在一起,一定是拼写错误,去掉一个的就好啦:比如 helllo -> hello两对一样的字母(AABB型)连在一起,一定是拼写错误,去掉第二对的一个字母就好啦:比如 helloo -> hello上面的规则优先“从左到右”匹配,即如果是AABBCC,虽然AABB和BBCC都是错误拼原创 2020-12-25 09:51:05 · 141 阅读 · 0 评论 -
单词的压缩编码
#1、描述820给定一个单词列表,我们将这个列表编码成一个索引字符串 S 与一个索引列表 A。例如,如果这个列表是 ["time", "me", "bell"],我们就可以将其表示为 S = "time#bell#" 和 indexes = [0, 2, 5]。对于每一个索引,我们可以通过从字符串 S 中索引的位置开始读取字符串,直到 "#" 结束,来恢复我们之前的单词列表。那么成...原创 2020-03-28 15:11:48 · 393 阅读 · 0 评论