
字符串处理
文章平均质量分 65
JingleLiA
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
最小覆盖子串
题目链接:最小覆盖子串 题目描述: 给你一个字符串 S、一个字符串 T 。请你设计一种算法,可以在 O(n) 的时间复杂度内,从字符串 S 里面找出:包含 T 所有字符的最小子串。 示例: 输入:S = “ADOBECODEBANC”, T = “ABC” 输出:“BANC” 提示: 如果 S 中不存这样的子串,则返回空字符串 ""。 如果 S 中存在这样的子串,我们保证它是唯一的答案。 题目分析:双指针加滑动窗口。在S中用i ,j 维护一个滑动窗口,j不断向右延申,一旦窗口中的值包含T中所有字符时,我们原创 2020-10-30 01:09:07 · 371 阅读 · 0 评论 -
重复的子字符串--kmp解法
题目链接:重复的子字符串 题目描述: 给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。 示例 1: 输入: “abab” 输出: True 解释: 可由子字符串 “ab” 重复两次构成。 示例 2: 输入: “aba” 输出: False 示例 3: 输入: “abcabcabcabc” 输出: True 解释: 可由子字符串 “abc” 重复四次构成。 (或者子字符串 “abcabc” 重复两次构成。) 解题思路 如果您的字符串 S原创 2020-09-22 16:34:46 · 745 阅读 · 0 评论 -
443. 压缩字符串
题目链接:压缩字符串 题目描述: 给定一组字符,使用原地算法将其压缩。 压缩后的长度必须始终小于或等于原数组长度。 数组的每个元素应该是长度为1 的字符(不是 int 整数类型)。 在完成原地修改输入数组后,返回数组的新长度。 进阶: 你能否仅使用O(1) 空间解决问题? 示例 1: 输入: [“a”,“a”,“b”,“b”,“c”,“c”,“c”] 输出: 返回 6 ,输入数组的前 6 个字符应该是:[“a”,“2”,“b”,“2”,“c”,“3”] 说明: “aa” 被 “a2” 替代。“bb” 被 “原创 2020-09-17 18:48:37 · 281 阅读 · 0 评论 -
剑指 Offer 48. 最长不含重复字符的子字符串
题目链接:不含重复字符的最长子串 题目描述: 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。 示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。 示例 3: 输入: “pwwkew” 输出: 3 解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。 请注意,你的答案必须是 子串 的长原创 2020-08-19 19:59:34 · 270 阅读 · 0 评论 -
实现 strStr()---字符串匹配的三种解法
题目链接:实现strstr() 题目描述: 实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 示例 1: 输入: haystack = “hello”, needle = “ll” 输出: 2 示例 2: 输入: haystack = “aaaaa”, needle = “bba” 输出: -1 题目分析:字符串匹配是一道很经典的题目,除了暴力匹原创 2020-07-30 16:31:18 · 526 阅读 · 0 评论 -
面试题 17.13. 恢复空格
题目链接:恢复空格 题目描述: 哦,不!你不小心把一个长篇文章中的空格、标点都删掉了,并且大写也弄成了小写。像句子"I reset the computer. It still didn’t boot!“已经变成了"iresetthecomputeritstilldidntboot”。在处理标点符号和大小写之前,你得先把它断成词语。当然了,你有一本厚厚的词典dictionary,不过,有些词没在词典里。假设文章用sentence表示,设计一个算法,把文章断开,要求未识别的字符最少,返回未识别的字符数。 注意原创 2020-07-09 21:57:33 · 232 阅读 · 0 评论 -
JAVA正则表达式:Pattern类与Matcher类详解(转)
java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包。它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表现模式。 Matcher 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查。 首先一个Pattern实例订制了一个所用语法与PERL的类似的正则表达式经编转载 2017-09-02 15:56:35 · 612 阅读 · 0 评论 -
Java 里面split用法小结
Java split()用法 特殊情况有 * ^ : | . \ 一、单个符号作为分隔符 String address="上海\上海市|闵行区\吴中路"; String[] splitAddress=address.split("\\"); System.out.println(splitAddress[0]+splitAddress[1]+splitAddress[2]转载 2017-08-09 19:10:24 · 546 阅读 · 0 评论 -
kmp字符串匹配算法实现c++
分析:利用前后缀相同的原理,如果某个位置不匹配,既然前后缀相同,就将模式串右移,直到模式串的前缀和匹配串的后缀对齐,至此可以减除很多不必要的比较。所以关键就是求出字符串中某个字符之前的字符串的最大前后缀长度。求解这个的过程本身实质也是一个寻找匹配的过程,只不过寻找的是自身的匹配。#include<iostream> #include<algorithm> #include&...原创 2018-07-10 20:51:41 · 1128 阅读 · 0 评论 -
kmp算法初识
这个算法的确是不好理解,这是令人头疼,所以这里我先把一些大佬的文章贴在这里,等我彻底理解了,我在回来补充这个文章可以说是非常清楚了:http://blog.youkuaiyun.com/v_july_v/article/details/7041827下面我在补充上一道我遇到的题:fjxmlhx不喜欢网上的 marshtomps 。所以他决定把所有的“marshtomp”(名字不区分大小写)改为 “fjxmlh...原创 2017-09-09 13:37:04 · 378 阅读 · 0 评论 -
汉字统计
统计给定文本文件中汉字的个数。 Input输入文件首先包含一个整数n,表示测试实例的个数,然后是n段文本。 Output对于每一段文本,输出其中的汉字的个数,每个测试实例的输出占一行。 [Hint:]从汉字机内码的特点考虑~ Sample Input 2 WaHaHa! WaHaHa! 今年过节不说话要说只说普通话WaHaHa! WaHaHa! 马上就要期末考试了Ar原创 2017-10-02 15:40:46 · 639 阅读 · 0 评论 -
首字母变大写
输入一个英文句子,将每个单词的第一个字母改成大写字母。 Input输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行。 Output请输出按照要求改写后的英文句子。 Sample Input i like acm i want to get an accepted Sample Output I Like Acm I Want To原创 2017-10-02 12:11:15 · 682 阅读 · 0 评论 -
输入输出格式练习
题目描述 输入 按格式读入一个3位的整数、一个实数、一个字符。 输出 按格式输出一个整数占8位左对齐、一个实数(位数不多于8位,保留一位小数后)占八位右对齐、一个字符,并用|隔开 样例输入 123456.789a 样例输出 123 | 456.8|a import java.util.Scanner; public class Ma原创 2017-08-29 20:58:14 · 767 阅读 · 0 评论 -
蓝桥杯--正则问题
描述:正则问题考虑一种简单的正则表达式:只由 x ( ) | 组成的正则表达式。小明想求出这个正则表达式能接受的最长字符串的长度。 例如 ((xx|xxx)x|(x|xx))xx 能接受的最长字符串是: xxxxxx,长度是6。输入----一个由x()|组成的正则表达式。输入长度不超过100,保证合法。 输出----这个正则表达式能接受的最长字符串的长度。 例如,输入:((xx|xxx)x|...原创 2018-03-27 14:31:36 · 836 阅读 · 2 评论 -
日期问题--蓝桥杯
题目描述小明正在整理一批历史文献。这些历史文献中出现了很多日期。小明知道这些日期都在1960年1月1日至2059年12月31日。令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的,有采用月/日/年的,还有采用日/月/年的。更加麻烦的是,年份也都省略了前两位,使得文献上的一个日期,存在很多可能的日期与其对应。 比如02/03/04,可能是2002年03月04日、2004年02月03日...原创 2018-03-21 09:11:44 · 716 阅读 · 1 评论 -
Java比较中文字符串--振兴中华
标题: 振兴中华 小明参加了学校的趣味运动会,其中的一个项目是:跳格子。 地上画着一些格子,每个格子里写一个字,如下所示:(也可参见p1.jpg) 从我做起振 我做起振兴 做起振兴中 起振兴中华 比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。一直要跳到“华”字结束。 要求跳过的路线原创 2017-12-17 14:54:29 · 4861 阅读 · 0 评论 -
串的简单处理
串的简单处理 串的处理 在实际的开发工作中,对字符串的处理是最常见的编程任务。 本题目即是要求程序对用户输入的串进行处理。具体规则如下: 1. 把每个单词的首字母变为大写。 2. 把数字与字母之间用下划线字符(_)分开,使得更清晰 3. 把单词中间有多个空格的调整为1个空格。 例如: 用户输入: you and me what cpp2005program 则程序输出转载 2017-09-17 13:31:14 · 390 阅读 · 0 评论 -
字符排序
算法是这样的,如果给定N个不同字符,将这N个字符全排列,最终的结果将会是N!种。如:给定 A、B、C三个不同的字符,则结果为:ABC、ACB、BAC、BCA、CAB、CBA一共3!=3*2=6种情况。 import java.util.*; public class charSort { public static long cnt = 0; public static voi原创 2017-09-17 13:29:25 · 1475 阅读 · 0 评论 -
U-出勤记录
小Hi的算法课老师每次上课都会统计小Hi的出勤记录。迟到会被记录一个L,缺席会被记录一个A,按时上课会被记录一个O。 一学期结束,小Hi的出勤记录可以看成是一个只包含LAO的字符串,例如"OOOOLOOOLALLO……"。 如果小Hi整学期缺席不超过1次,并且没有连续3次迟到,小Hi的出勤记录就算合格。 现在给出小Hi的出勤记录,你能判断他是否合格么? Input 输入第一行包含一原创 2017-09-09 15:35:44 · 1091 阅读 · 0 评论 -
N-Arrangement,字母相同排除
这是题目链接,由于题目为PDF文件,所以我没办法复制粘贴,题目大致意思就是有些单词字母组成形同,只需要更换顺序就可以形成一个新的单词,但是你形成的单词必须是有实际意义的,在一定的范围内,形成的单词也不同,这里我们把自己的输入当做范围,输出不能满足上述条件的单词,即无论怎么更换字母都无法形成新的单词,当然,单个字母也满足,因为他无法再进行重组了 附上题目链接:https://cn.vjudge.n原创 2017-09-11 20:25:40 · 329 阅读 · 0 评论 -
R - 风格不统一如何写程序
小Hi写程序时习惯用蛇形命名法(snake case)为变量起名字,即用下划线将单词连接起来,例如:file_name、 line_number。 小Ho写程序时习惯用驼峰命名法(camel case)为变量起名字,即第一个单词首字母小写,后面单词首字母大写,例如:fileName、lineNumber。 为了风格统一,他们决定邀请公正的第三方来编写一个转换程序,可以把一种命名法的变量原创 2017-09-10 17:44:15 · 755 阅读 · 0 评论 -
leetcode字符串转整数
https://leetcode-cn.com/problems/string-to-integer-atoi/ 请你来实现一个 atoi 函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下: 如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。 ...原创 2020-05-03 14:51:53 · 165 阅读 · 0 评论