
字符串
字符串相关题目
ZQQ~BK
这个作者很懒,什么都没留下…
展开
-
表示数值的字符串
题目描述:请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100",“5e2”,"-123",“3.1416"和”-1E-16"都表示数值。 但是"12e",“1a3.14”,“1.2.3”,"±5"和"12e+4.3"都不是。思路分析:需要通过归纳总结出不符合的条件:1.±号后面只能跟数字或者.,±号必须出现在第一位或者是Ee的后面2. .只能出现一次,.后面必须跟数字或者是最后一位3. Ee只能出现一次,后面跟±号或者数字public class IsNumer原创 2020-08-01 19:51:02 · 146 阅读 · 0 评论 -
最长有效括号
题目描述:给定一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。方法一:class Solution { public int longestValidParentheses(String s) { int len=s.length(); int l=0; for(int i=0;i<len;i++){...原创 2020-03-14 23:22:05 · 86 阅读 · 0 评论 -
串联所有单词的子串
题目描述:给定一个字符串 s 和一些长度相同的单词 words。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。注意子串要与 words 中的单词完全匹配,中间不能有其他字符,但不需要考虑 words 中单词串联的顺序。思路分析:因为单词长度固定的,我们可以计算出截取字符串的单词个数是否和 words 里相等,所以我们可以借用哈希表。一个是哈希表是 words,...原创 2020-03-05 22:34:19 · 247 阅读 · 0 评论 -
最长公共前缀
题目描述:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。方法一:用strs[0]作为公共前缀,通过遍历数组剩余字符串去除不是公共前缀的字符class Solution { public String longestCommonPrefix(String[] strs) { if(strs==null||strs.length=...原创 2020-02-23 22:47:17 · 82 阅读 · 0 评论 -
电话号码的字母组合
题目描述:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。方法一:先建一个映射表,第二个位置是"abc“,第三个位置是"def"。。。往队列中加入一个空字符由当前遍历到的字符,取字典表中查找对应的字符串计算出队列长度后,将队列中的每个元素挨个拿出来每次都从队列中拿出第一个元素,然后跟"def"...原创 2020-02-28 00:13:32 · 139 阅读 · 0 评论 -
正则表达式匹配
题目描述:给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。‘.’ 匹配任意单个字符‘*’ 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。方法一:回溯法这种匹配思路其实就是不断地减掉s和p的可以匹配首部,直至一个或两个字符串被减为空的时候,根据最终情况来得出结论。class Solution {...原创 2020-02-21 21:41:07 · 156 阅读 · 0 评论 -
Z 字形变换
题目描述:将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。思路分析:使用min(numRows,len) 个列表来表示 Z 字形图案中的非空行。从左到右迭代 s,将每个字符添加到合适的行。可以使用当前行和当前方向这两个变量对合适的行进行跟踪。只有当我们向上移动到最上面的行或向下移动到最下面的行时,当前方向才会发生改变。class Solution { p...原创 2020-02-21 12:18:17 · 109 阅读 · 0 评论 -
最长回文子串
题目描述:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。class LongestPalindrome { public String longestPalindrome(String s) { int start=0; int end=0; for(int i=0;i<s.length()...原创 2020-02-21 10:16:37 · 105 阅读 · 0 评论 -
唯一摩尔斯密码词
题目描述:国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: “a” 对应 “.-”, “b” 对应 “-…”, “c” 对应 “-.-.”, 等等。为了方便,所有26个英文字母对应摩尔斯密码表如下:[".-","-…","-.-.","-…",".","…-.","–.","…","…",".—","-.-",".-…","–","-.","—"...原创 2020-02-10 20:02:50 · 519 阅读 · 0 评论 -
解码字母到整数映射
题目:给你一个字符串 s,它由数字(‘0’ - ‘9’)和 ‘#’ 组成。我们希望按下述规则将 s 映射为一些小写英文字符:字符(‘a’ - ‘i’)分别用(‘1’ - ‘9’)表示。字符(‘j’ - ‘z’)分别用(‘10#’ - ‘26#’)表示。返回映射之后形成的新字符串。题目数据保证映射始终唯一。思路分析:对字符串 s 进行顺序遍历。当遍历到位置 i 时,我们首先向后看两个字...原创 2020-02-08 20:45:46 · 282 阅读 · 0 评论 -
验证回文串
题目:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。思路:设置左、右双指针,向中间判断;跳过非数字字母的字符;将字母全部转化为大写体,之后判断。class Solution { public boolean isPalindrome(String s) { int len=s.l...原创 2020-01-20 16:38:47 · 124 阅读 · 0 评论 -
仅仅反转字母
题目:给定一个字符串 S,返回 “反转后的” 字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转。方法一:双指针遍历字符串数组,不是字母,指针移动,当两个指针指向都为字母时,就交换两个字母。class Solution { public String reverseOnlyLetters(String S) { char[] a=S.toCharArr...原创 2020-01-19 14:50:13 · 108 阅读 · 0 评论 -
求最后一个单词长度
题目:给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。如果不存在最后一个单词,请返回 0 。说明:一个单词是指仅由字母组成、不包含任何空格的 最大子字符串。方法一:通过trim()方法去除前后空格,然后从字符串尾部找到第一个空格出现位置,从空格的下一位置开始计数,计算出最后一个单词的长度c...原创 2020-01-18 17:17:22 · 294 阅读 · 0 评论 -
长按键入
题目:你的朋友正在使用键盘输入他的名字 name。偶尔,在键入字符 c 时,按键可能会被长按,而字符可能被输入 1 次或多次。你将会检查键盘输入的字符 typed。如果它对应的可能是你的朋友的名字(其中一些字符可能被长按),那么就返回 True。class Solution { public boolean isLongPressedName(String name, String t...原创 2020-01-18 22:35:42 · 115 阅读 · 0 评论 -
字符串的最大公因子
题目描述:对于字符串 S 和 T,只有在 S = T + … + T(T 与自身连接 1 次或多次)时,我们才认定 “T 能除尽 S”。返回最长字符串 X,要求满足 X 能除尽 str1 且 X 能除尽 str2。方法一:遍历较长字符串和较短字符串进行比较来判断是否存在公约数辗转相除法求最大公约数class Solution { public String gcdOfStr...原创 2020-03-12 23:18:01 · 143 阅读 · 0 评论 -
无重复字符的最长子串
题目描述:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。方法一:找出每个字串,然后判断是否有重复的字符,没有则找出其中最长的。public class Solution { public int lengthOfLongestSubstring(String s) { int n = s.length(); int ans = 0;...原创 2020-02-18 22:10:00 · 83 阅读 · 0 评论 -
增减字符串匹配
题目:给定只含 “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]思路分析:我们记录还未写入的最小和最大的数,它们对应的区间为当...原创 2020-02-13 13:31:17 · 160 阅读 · 0 评论 -
亲密字符串
题目描述:给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true ;否则返回 false 。思路分析:字符串 A 与 B 相等的情况下,因此,我们应当检查每个索引 i 以寻找具有相同值的两个匹配即为亲密字符串。字符串 A 与 B 不相等的情况下,找出两个字符不相等的索引,判断交换两个索引对应的字符后是否相等class ...原创 2020-01-27 15:19:42 · 276 阅读 · 0 评论 -
压缩字符串
题目:给定一组字符,使用原地算法将其压缩。压缩后的长度必须始终小于或等于原数组长度。数组的每个元素应该是长度为1 的字符(不是 int 整数类型)。在完成原地修改输入数组后,返回数组的新长度。思路:使用两个指针 flag1 和 flag2分别标记从左到右进行读入连续的一串字符的初始位置和结束位置。下一个字符与当前不同时,则到达连续区块的结尾,则为flag2指向的位置。flag标记压...原创 2020-01-20 19:10:34 · 156 阅读 · 0 评论 -
字符串转换整数 (atoi)
题目:请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符...原创 2020-01-20 13:32:01 · 121 阅读 · 0 评论 -
比较含退格的字符串
题目要求:给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。方法一:这个方法比较简单,用两个栈分别保存#抵消后的字符串,然后将栈转换为字符串,比较两个字符串是否相等即可class Solution { public boolean backspaceCompare(String S, String T) { ...原创 2020-01-12 20:52:38 · 126 阅读 · 0 评论