![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
字符串处理
字符串问题
向光.
路过人间,绝非一瞬间.
展开
-
⭐北邮复试刷题LCR 018. 验证回文串__双指针 (力扣119经典题变种挑战)
给定一个字符串 s ,验证 s 是否是 回文串 ,只考虑字母和数字字符,可以忽略字母的大小写。输入: s = “A man, a plan, a canal: Panama”我们先将字符串转换成小写,再去除除数字和字母之外的其他字符,使用双指针比对即可;解释:“amanaplanacanalpanama” 是回文串。本题中,将空字符串定义为有效的 回文串。输入: s = “race a car”解释:“raceacar” 不是回文串。字符串 s 由 ASCII 字符组成。原创 2024-02-21 23:20:33 · 430 阅读 · 0 评论 -
⭐北邮复试刷题LCR 012. 寻找数组的中心下标__前缀和思想 (力扣119经典题变种挑战)
左侧数之和 sum = nums[0] + nums[1] + nums[2] = 1 + 7 + 3 = 11 ,右侧数之和 sum = nums[4] + nums[5] = 5 + 6 = 11 ,二者相等。右侧数之和 sum = nums[1] + nums[2] = 1 + -1 = 0。数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。输入:nums = [1,7,3,6,5,6]输入:nums = [2, 1, -1]输入:nums = [1, 2, 3]原创 2024-02-18 17:31:29 · 365 阅读 · 0 评论 -
Leetcode.179. 最大数__自定义排序
179. 最大数给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。示例 1:输入:nums = [10,2]输出:"210"示例 2:输入:nums = [3,30,34,5,9]输出:"9534330"示例 3:输入:nums = [1]输出:"1"示例 4:输入:nums = [10]输出:"10" 提示:1 <= nums.length <=原创 2022-01-22 08:44:43 · 306 阅读 · 0 评论 -
剑指 Offer II 036. 后缀表达式——栈+字符串正则匹配操作
剑指 Offer II 036. 后缀表达式根据 逆波兰表示法,求该后缀表达式的计算结果。有效的算符包括 +、-、*、/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例 1:输入:tokens = ["2","1","+","3","*"]输出:9解释:该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9示例 2:输入:tokens =原创 2022-01-12 21:45:04 · 86 阅读 · 0 评论 -
吉利数——字符串思想和逐位分解保留思想(Java/C++)
安徽大学算法期末机试3262题题解:最直观的思路便是直接利用字符串的contains特性,直接将数字转换为字符串,直接判断其是否含有7和13子串即可,但会超时;java代码:import java.util.Scanner;class Test1{ static int count = 0; public static void main(String[] args) { Scanner scanner = new Scanner(System.in);原创 2022-01-09 08:39:13 · 569 阅读 · 0 评论 -
大整数类——C++实现
大整数类题解:要实现大整数类,我们首先要设置多个构造器,使之能识别字符串作为数字,因为使用字符串可以输入很大的数字且不越界。同时由于拿到的是字符串不是直接的数字了,所以我们还需要通过运算符重载来实现加法和等于。如何实现字符串形式的加法?我们先计算一下要加的两个字符串形式的数字的位数,我们使用给位数小的数字进行补0操作,使之位数相同且多补一位0防止进位,接着在二者位数相同的情况下,我们逐位相加,一旦大于10进位即可,再把原先补的多余的0判断是否要去掉即可。代码:#include <原创 2022-01-09 08:26:22 · 4821 阅读 · 0 评论 -
Leetcode.6. Z 字形变换
6. Z 字形变换将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下:P A H NA P L S I I GY I R之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“PAHNAPLSIIGYIR”。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int numRows);示例 1:原创 2022-01-07 08:27:52 · 137 阅读 · 0 评论 -
Leetcode.2109. 向字符串添加空格
2109. 向字符串添加空格给你一个下标从 0 开始的字符串 s ,以及一个下标从 0 开始的整数数组 spaces 。数组 spaces 描述原字符串中需要添加空格的下标。每个空格都应该插入到给定索引处的字符值 之前 。例如,s = “EnjoyYourCoffee” 且 spaces = [5, 9] ,那么我们需要在 ‘Y’ 和 ‘C’ 之前添加空格,这两个字符分别位于下标 5 和下标 9 。因此,最终得到 “Enjoy Your Coffee” 。请你添加空格,并返回修改后的字符串。示例原创 2022-01-05 23:00:55 · 287 阅读 · 0 评论 -
Leetcode.28. 实现 strStr()---暴力与KMP
28. 实现 strStr()实现 strStr() 函数。给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。说明:当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与 C 语言的 strstr() 以及 Java 的 indexOf() 定义相符。 示例 1原创 2021-11-21 14:20:51 · 85 阅读 · 0 评论 -
Leetcode.14. 最长公共前缀---字符串处理
14. 最长公共前缀题目描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入:strs = [“flower”,“flow”,“flight”]输出:“fl”示例 2:输入:strs = [“dog”,“racecar”,“car”]输出:""解释:输入不存在公共前缀。提示:<= strs.length <= 2000 <= strs[i].length <= 200strs[i] 仅由小写英文字母组成原创 2021-10-27 11:01:54 · 114 阅读 · 0 评论 -
Leetcode.1736. 替换隐藏数字得到的最晚时间---多层if
1736. 替换隐藏数字得到的最晚时间给你一个字符串 time ,格式为 hh:mm(小时:分钟),其中某几位数字被隐藏(用 ? 表示)。有效的时间为 00:00 到 23:59 之间的所有时间,包括 00:00 和 23:59 。替换 time 中隐藏的数字,返回你可以得到的最晚有效时间。示例 1:输入:time = "2?:?0"输出:"23:50"解释:以数字 '2' 开头的最晚一小时是 23 ,以 '0' 结尾的最晚一分钟是 50 。示例 2:输入:time = "0?:3?"原创 2021-07-24 16:47:32 · 78 阅读 · 0 评论 -
Leetcode.1935. 可以输入的最大单词数---双哈希比对
1935. 可以输入的最大单词数键盘出现了一些故障,有些字母键无法正常工作。而键盘上所有其他键都能够正常工作。给你一个由若干单词组成的字符串 text ,单词间由单个空格组成(不含前导和尾随空格);另有一个字符串 brokenLetters ,由所有已损坏的不同字母键组成,返回你可以使用此键盘完全输入的 text 中单词的数目。示例 1:输入:text = "hello world", brokenLetters = "ad"输出:1解释:无法输入 "world" ,因为字母键 'd' 已损坏原创 2021-07-22 18:35:52 · 129 阅读 · 0 评论 -
Leetcode.6. Z 字形变换---字符串处理(按照行存储的模拟法)
6. Z 字形变换将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下:P A H NA P L S I I GY I R之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“PAHNAPLSIIGYIR”。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int numRows);示例 1:原创 2021-07-20 21:24:11 · 162 阅读 · 0 评论 -
leetcode.168. Excel表列名称---字符串进制问题
168. Excel表列名称给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。例如:A -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28 ... 示例 1:输入:columnNumber = 1输出:"A"示例 2:输入:columnNumber = 28输出:"AB"示例 3:输入:columnNumber = 701输出:"ZY"示例 4:输入原创 2021-06-29 16:50:17 · 120 阅读 · 0 评论 -
leetcode.942. 增减字符串匹配
942. 增减字符串匹配给定只含 “I”(增大)或 “D”(减小)的字符串 S ,令 N = S.length。返回 [0, 1, …, N] 的任意排列 A 使得对于所有 i = 0, …, N-1,都有:如果 S[i] == “I”,那么 A[i] < A[i+1]如果 S[i] == “D”,那么 A[i] > A[i+1]示例 1:输入:"IDID"输出:[0,4,1,3,2]示例 2:输入:"III"输出:[0,1,2,3]示例 3:输入:"DDI"输出原创 2021-06-01 20:15:04 · 119 阅读 · 0 评论 -
leetcode.1190 反转每对括号间的子串---模拟栈
1190. 反转每对括号间的子串给出一个字符串 s(仅含有小写英文字母和括号)。请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结果。注意,您的结果中 不应 包含任何括号。示例 1:输入:s = "(abcd)"输出:"dcba"示例 2:输入:s = "(u(love)i)"输出:"iloveu"示例 3:输入:s = "(ed(et(oc))el)"输出:"leetcode"示例 4:输入:s = "a(bcdefghijkl(mno)p)q"原创 2021-05-26 22:59:57 · 179 阅读 · 0 评论 -
leetcode.5. 最长回文子串---dp
5. 最长回文子串给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。示例 2:输入:s = "cbbd"输出:"bb"示例 3:输入:s = "a"输出:"a"示例 4:输入:s = "ac"输出:"a" 提示:1 <= s.length <= 1000s 仅由数字和英文字母(大写和/或小写)组成题解:此题是明显的DP问题,首先,我们先找准状态定义,即原创 2021-05-25 15:31:01 · 158 阅读 · 1 评论 -
leetcode.12. 整数转罗马数字---字符串操作(打表法)
12. 整数转罗马数字罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX +原创 2021-05-14 19:28:01 · 224 阅读 · 1 评论 -
leetcode. 459. 重复的子字符串
459. 重复的子字符串给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。示例 1:输入: "abab"输出: True解释: 可由子字符串 "ab" 重复两次构成。示例 2:输入: "aba"输出: False示例 3:输入: "abcabcabcabc"输出: True解释: 可由子字符串 "abc" 重复四次构成。 (或者子字符串 "abcabc" 重复两次构成。)题解:首先需要充分理原创 2021-04-17 15:47:56 · 116 阅读 · 0 评论 -
第十一届蓝桥杯省赛第一场B组第九题---整数拼接----全排列+字符串与数字的转换问题
时间限制: 1.0s 内存限制: 256.0MB 本题总分:25 分问题:给定义个长度为 n 的数组 A1, A2, · · · , An。你可以从中选出两个数 Ai (i 不等于 j),然后将 Ai 和 Aj 一前一后拼成一个新的整数。例如 12 和 以拼成 12345 或 34512。注意交换 Ai 和 Aj 的顺序总是被视为 2 种拼法,是 Ai = Aj 时。请你计算有多少种拼法满足拼出的整数是 K 的倍数。输入:第一行包含 2 个整数 n 和 K。第二行包含 n 个整数 A1, A2,原创 2021-04-15 11:06:12 · 339 阅读 · 0 评论 -
力扣179. 最大数----字符串处理+排序
179. 最大数给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。示例 1:输入:nums = [10,2]输出:"210"示例 2:输入:nums = [3,30,34,5,9]输出:"9534330"示例 3:输入:nums = [1]输出:"1"示例 4:输入:nums = [10]输出:"10" 提示:1 <= nums.length <=原创 2021-04-12 19:06:32 · 506 阅读 · 0 评论