
Leetcode___string
Kobe Forever
自信乐观,善待他人,善待自己!
展开
-
leetcode[438] 找到字符串中所有字母异位词
题目:给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引。思路:类似最小覆盖子串,利用双指针+滑动窗口的思想,区别是这里内层while循环条件(match数等于needs大小)及判断是结果索引的条件(right-left等于p的大小)。代码:class Solution {public: vector<int&...原创 2020-04-21 19:11:59 · 201 阅读 · 0 评论 -
leetcode[76] 最小覆盖子串
题目:给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字母的最小子串。实例输入: S = "ADOBECODEBANC", T = "ABC"输出: "BANC"思路:巧妙利用两个指针,操作滑动窗口的范围。外层循环:当滑动窗口不包含T中字符时,右移right指针,使得当前滑动窗口包含T中的字符。循环结束条件:right指针指向s字符串范围内层循环:...原创 2020-04-21 17:58:50 · 198 阅读 · 0 评论 -
leetcode[151] 翻转字符串里的单词
问题:给定一个字符串,逐个翻转字符串中的每个单词。思路:先局部,再整体。第一遍,一边去除掉多余的空格,一边局部翻转单词。第二遍,整个句子翻转一遍。代码:class Solution {public: string reverseWords(string& s) { int len=s.size(); int i=0,j=0;...原创 2020-03-30 17:28:17 · 111 阅读 · 0 评论 -
剑指offer 面试题20 表示数值的字符串
问题:验证给定的字符串是否可以解释为十进制数字。输入:constchar*str输出:是否为有效的数字思路:首先,扫描整数部分(起始处可能有+或-),然后,扫描小数部分(如果一个数没有整数部分,那么他的小数部分不能为空),最后,扫描指数部分(起始处可能有+或-)。代码:class Solution {public: int i=0; bool scanU...原创 2020-02-25 21:23:43 · 143 阅读 · 0 评论 -
剑指offer 面试题19 正则表达式匹配
问题:给你一个字符串s和一个字符规律p,请你来实现一个支持 '.'和'*'的正则表达式匹配。(leetcode10 hard)'.' 匹配任意单个字符'*' 匹配零个或多个前面的那一个元素输入:两个字符串变量s和p输出:是否匹配思路:主要需要注意模式串中的*,如果为*,则模式串的指针有可能不动,也有可能跳动两个位置。代码:class Solution {...原创 2020-02-25 16:16:40 · 138 阅读 · 0 评论 -
leetcode[387]First Unique Character in a String
问题:给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。输入:一个字符串(仅包含英文小写字母)输出:第一个不重复的字符索引(不存在则返回-1)思路:遍历一遍字符串,利用hash表存储,每个字符为key时,value加1。然后,正序遍历一遍字符串,如果value为1,则返回其索引。(或者,遍历一遍hash表,如下第一个代码,判断是否为不重复的数字,比较得到最小的索...原创 2020-02-11 18:28:30 · 146 阅读 · 0 评论 -
leetcode[443]string compression
问题:给定一组字符,使用原地算法将其压缩。压缩后的长度必须始终小于或等于原数组长度。数组的每个元素应该是长度为1的字符(不是 int 整数类型)。在完成原地修改输入数组后,返回数组的新长度。输入:字符数组vector<char>& chars输出:字符数组的长度(同时,chars要变成压缩后的)思路:首先,处理特殊情况(chars长度为1,直接返回...原创 2020-01-28 22:00:16 · 126 阅读 · 0 评论 -
leetcode[38]count-and-say
问题:count-and-say是一个整数数列,从数字 1 开始,序列中的每一项都是对前一项的描述。输入:正整数n输出:count-and-say的第n项思路:采用递归算法。要生成第n项,首先要写出第n-1项。class Solution {public: string countAndSay(int n) { string result = "";...原创 2020-01-28 21:56:02 · 210 阅读 · 0 评论 -
leetcode[28]Implement strStr()
问题:"火柴堆找针”[1]输入:“火柴堆”string haystack,“针”string needle输出:火柴堆中第一根针出现的位置思路:two pointer,外层循环遍历火柴堆,内层循环遍历针代码如下:class Solution {public: int strStr(string haystack, string needle) { ...原创 2019-03-10 22:00:50 · 168 阅读 · 0 评论 -
leetcode[344]Reverse String
问题:in-place翻转字符串(要求:不能开辟新的空间)输入:char[]字符数组思路:利用twopointers,交换两者字符。class Solution {public: void reverseString(vector<char>& s) { int i; int j; char c; ...原创 2019-03-06 23:21:29 · 129 阅读 · 0 评论