
字符串
文章平均质量分 56
earlene_wyl
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leetcode 30. 串联所有单词的子串 hard
leetcode30. 串联所有单词的子串 hard 题目描述: 给定一个字符串s和一些长度相同的单词words。找出 s 中恰好可以由words 中所有单词串联形成的子串的起始位置。 注意子串要与words 中的单词完全匹配,中间不能有其他字符,但不需要考虑words中单词串联的顺序。 示例 1: 输入: s = "barfoothefoobarm...原创 2019-08-03 14:23:52 · 186 阅读 · 0 评论 -
leetcode 38. 报数 easy
leetcode38. 报数 easy 题目描述: 报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下: 1. 1 2. 11 3. 21 4. 1211 5. 111221 1被读作"one 1"("一个一") , 即11。 11 被读作"two 1s"("两个一"), 即21。 ...原创 2019-08-12 22:08:59 · 98 阅读 · 0 评论 -
leetcode 49. 字母异位词分组 medium
leetcode49. 字母异位词分组 medium 题目描述: 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。 示例: 输入: ["eat", "tea", "tan", "ate", "nat", "bat"], 输出: [ ["ate","eat","tea"], ["nat","tan"], ["bat"...原创 2019-08-12 22:44:13 · 167 阅读 · 0 评论 -
leetcode 151. 翻转字符串里的单词 medium
leetcode 151. 翻转字符串里的单词medium 题目描述: 给定一个字符串,逐个翻转字符串中的每个单词。 示例 2: 输入: " hello world! " 输出:"world! hello" 解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。 说明: 无空格字符构成一个单词。 输入字符串可以在前面或者后面包含多余...原创 2019-08-12 23:19:38 · 172 阅读 · 0 评论 -
leetcode 165. 比较版本号 medium
leetcode165. 比较版本号 medium 题目描述: 比较两个版本号 version1和 version2。 如果version1>version2返回1,如果version1<version2 返回 -1, 除此之外返回 0。 你可以假设版本字符串非空,并且只包含数字和. 字符。 . 字符不代表小数点,而是用于分隔数字...原创 2019-08-13 00:44:22 · 256 阅读 · 0 评论 -
leetcode 929. 独特的电子邮件地址 easy
leetcode 929. 独特的电子邮件地址easy 题目描述: 每封电子邮件都由一个本地名称和一个域名组成,以 @ 符号分隔。 例如,在alice@leetcode.com中,alice是本地名称,而leetcode.com是域名。 除了小写字母,这些电子邮件还可能包含 '.' 或 '+'。 如果在电子邮件地址的本地名称部分中的某些字符之间添加句点('...原创 2019-08-13 01:08:20 · 231 阅读 · 0 评论 -
leetcode 6. Z 字形变换 medium
leetcode6. Z 字形变换 medium 题目描述: 将一个给定字符串根据给定的行数,以从上往下、从左到右进行Z 字形排列。 比如输入字符串为 "LEETCODEISHIRING"行数为 3 时,排列如下: L C I R E T O E S I I G E D H N 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比...原创 2019-08-13 08:16:26 · 158 阅读 · 0 评论 -
leetcode 609. 在系统中查找重复文件 medium
leetcode609. 在系统中查找重复文件 medium 题目描述: 给定一个目录信息列表,包括目录路径,以及该目录中的所有包含内容的文件,您需要找到文件系统中的所有重复文件组的路径。一组重复的文件至少包括二个具有完全相同内容的文件。 输入列表中的单个目录信息字符串的格式如下: "root/d1/d2/.../dm f1.txt(f1_content) f2....原创 2019-08-17 17:51:51 · 151 阅读 · 0 评论 -
leetcode 394. 字符串解码 medium
leetcode394. 字符串解码medium 题目描述: 给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。 你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。 此外,你可以...原创 2019-08-18 01:11:35 · 176 阅读 · 1 评论 -
leetcode 14. 最长公共前缀 easy
leetcode14. 最长公共前缀 easy 题目描述: 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串""。 示例1: 输入: ["flower","flow","flight"] 输出: "fl" 示例2: 输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。 说明: 所有输入...原创 2019-07-16 15:14:58 · 158 阅读 · 0 评论 -
剑指offer. 17 打印从1到最大的n位数
剑指offer.17打印从1到最大的n位数 题目描述: 输入数字n,按顺序打印出从1到最大的n位十进制数。比如输入3,打印出1,2,3,一直到最大的3位数999. 解题思路: n位数的全排列,每个位置上从0到9遍历一遍,然后打印的时候,不要打印前导0 代码: // void dfs(string& s, int cur, int len) { if (cur ...原创 2019-10-09 03:00:31 · 127 阅读 · 0 评论 -
leetcode 76. 最小覆盖子串 hard
leetcode76. 最小覆盖子串 hard 题目描述: 给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字母的最小子串。 示例: 输入: S = "ADOBECODEBANC", T = "ABC" 输出: "BANC" 说明: 如果 S 中不存这样的子串,则返回空字符串 ""。 如果 S 中存在这样的子串,我们保证它是唯一的答案。 ...原创 2019-08-19 23:26:32 · 157 阅读 · 0 评论 -
剑指offer. 67 实现atoi && 20 表示数值的字符串
剑指offer. 67实现atoi 题目描述: 将一个字符串转换成一个整数(实现atoi的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。 解题思路: 检查空指针,空字符串,溢出,不是有效的输入等情况,并且对于以上情况均返回0,假如想要进一步区分是因为什么情况而返回0,可以通过设置全局变量来做到 ...原创 2019-08-07 14:49:50 · 144 阅读 · 0 评论 -
leetcode 387. 字符串中的第一个唯一字符 easy
leetcode387. 字符串中的第一个唯一字符 easy 题目描述: 给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。 案例: s = "leetcode" 返回 0. s = "loveleetcode", 返回 2. 注意事项:您可以假定该字符串只包含小写字母。 解题思路: 先遍历一遍字符串,统计字符出现的次数(用哈...原创 2019-08-03 22:07:07 · 110 阅读 · 0 评论 -
剑指offer. 50 字符流中第一个不重复的字符
剑指offer. 50字符流中第一个不重复的字符 题目描述: 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。 输出描述: 如果当前字符流没有存在出现一次的字符,返回#字符。 解题思路: 思路:时间复杂度O(1),...原创 2019-08-03 22:56:47 · 161 阅读 · 0 评论 -
剑指offer. 58-1 翻转单词顺序序列
剑指offer. 58-1 翻转单词顺序序列 题目描述: 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词...原创 2019-08-04 15:28:21 · 184 阅读 · 0 评论 -
剑指offer. 58-2 左旋转字符串
剑指offer. 58-2左旋转字符串 题目描述: 对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它! 解题思路: 假如字符串abc 0位:abc 1位:bca 2位:cab 3位:abc (即0位) 代码: class Sol...原创 2019-08-04 15:30:44 · 128 阅读 · 0 评论 -
剑指offer. 5替换空格
剑指offer. 5替换空格 题目描述: 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 解题思路: 问题1:替换字符串,是在原来的字符串上做替换,还是新开辟一个字符串做替换! 问题2:在当前字符串替换,怎么替换才更有效率(不考虑java里现有的replace方法)。 ...原创 2019-08-05 19:01:24 · 119 阅读 · 0 评论 -
leetcode 5. 最长回文子串 medium (重要)
leetcode5. 最长回文子串medium 题目描述: 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设s 的最大长度为 1000。 示例 1: 输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案。 示例 2: 输入: "cbbd" 输出: "bb" 解题思路一(最暴力O(n^3)): 求一个字符串的最长回文子串...原创 2019-08-01 22:18:07 · 201 阅读 · 0 评论 -
Manacher算法(一个字符串中找到最长回文子串)
零、预备知识 Manacher用于在一个字符串中找到最长的回文子串。 回文串:正着念和反着念一样,例如aabbaa,anna等。 注意子串与子序列的区别: 子串必须是在原字符中可以找到的。比如 " I am a student"。am是子串(当然也是子序列),但是aa就不是子串了(是子序列)。 一、算法原理 Manacher算法通常人称马拉车算法,用于在一个字符...原创 2019-08-01 22:50:23 · 164 阅读 · 0 评论 -
leetcode 266. 回文排列 easy
leetcode266. 回文排列 easy 题目描述: 给定一个字符串,判断该字符串中是否可以通过重新排列组合,形成一个回文字符串。 示例 1: 输入: "code" 输出: false 示例 2: 输入: "aab" 输出: true 示例 3: 输入: "carerac" 输出: true 解题思路: 我们可以使用映射表(map)帮助我们统计字符串中...原创 2019-08-01 22:31:01 · 515 阅读 · 0 评论 -
KMP( O(n)时间,子字符串查找 )
简介: 基本思路:在寻找的过程中,文本指针i,并不回退,而是去移动模式指针j的值,那这个移动到哪个位置是去查询next数组(ptr_p=next【ptr_p】) 而next 【i】实际上是模式字符串里面以下标i-1为尾的子串,它的最长相同前缀和后缀的长度。next数组的构建是通过递推来进行的 理解:左神p542 详细理解:https://blog.youkuaiyun.com/v_july_v/a...原创 2019-08-02 01:58:39 · 182 阅读 · 0 评论 -
leetcode 468. 验证IP地址 medium
leetcode468. 验证IP地址medium 题目描述: 编写一个函数来验证输入的字符串是否是有效的 IPv4 或IPv6 地址。 IPv4地址由十进制数和点来表示,每个地址包含4个十进制数,其范围为0 -255,用(".")分割。比如,172.16.254.1; 同时,IPv4 地址内的数不会以 0 开头。比如,地址172.16.254.01 是...原创 2019-08-18 19:03:03 · 335 阅读 · 0 评论 -
剑指offer. 19 正则表达式匹配
剑指offer. 19正则表达式匹配 题目描述: 请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配 解题思路: ab*a表示b可以出现...原创 2019-10-09 03:15:03 · 136 阅读 · 0 评论