随笔分类 -  字符串

1
摘要:题目:请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。 数值(按顺序)可以分成以下几个部分: 若干空格 一个 小数 或者 整数 (可选)一个 'e' 或 'E' ,后面跟着一个 整数 若干空格 小数(按顺序)可以分成以下几个部分: (可选)一个符号字符('+' 或 '-') 下述格式之一 阅读全文
posted @ 2021-09-24 12:42 for_ward 阅读(57) 评论(0) 推荐(0)
摘要:题目:输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。 思路:字符串解决大数问题 代码: package offer.q17; import java.util.Arrays; //考虑大数问题 public class 阅读全文
posted @ 2021-09-14 19:43 for_ward 阅读(42) 评论(0) 推荐(0)
摘要:题目:请实现一个函数,把字符串 s 中的每个空格替换成"%20"。 解法一:双指针 思路:先扫描原数组中的空格,计算出最终字符串的长度,再从后往前利用双指针进行复制和赋值操作 代码: class Solution { public String replaceSpace(String s) { if 阅读全文
posted @ 2021-07-14 11:29 for_ward 阅读(38) 评论(0) 推荐(0)
摘要:题目:给你一个字符串 s,它仅由字母 'a' 和 'b' 组成。每一次删除操作都可以从 s 中删除一个回文 子序列。返回删除给定字符串中所有字符(字符串为空)的最小删除次数。 思路:字符串是空串返回0,字符串本身就是回文串则返回1,剩下的情况都可以先删除所有的a再删除所有的b,即删除次数为2 代码: 阅读全文
posted @ 2021-01-21 10:45 for_ward 阅读(111) 评论(0) 推荐(0)
摘要:题目:请按下述规则将日志重新排序: 所有 字母日志 都排在 数字日志 之前。 字母日志 在内容不同时,忽略标识符后,按内容字母顺序排序;在内容相同时,按标识符排序; 数字日志 应该按原来的顺序排列。 思路:将数字和字母日志分别放于两个list中,对字母list进行排序后将数字日志加入到字母list中 阅读全文
posted @ 2021-01-19 17:20 for_ward 阅读(110) 评论(0) 推荐(0)
摘要:题目:给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。 解法:暴力 思路:只有s的因子个字母组成的子串才有可能是结果子串,例如s是“abcabcabc”,只需要判断9个1字母或3个3字母是否是重复的,假如现在的因子是i,则第一 阅读全文
posted @ 2021-01-18 10:36 for_ward 阅读(86) 评论(0) 推荐(0)
摘要:题目:编写一个函数,以字符串作为输入,反转该字符串中的元音字母。 思路:将元音挑出来反转,再装回数组 代码: class Solution { public String reverseVowels(String s) { //元音字母a、e、i、o、u char[] ch = s.toCharAr 阅读全文
posted @ 2021-01-17 10:54 for_ward 阅读(92) 评论(0) 推荐(0)
摘要:题目: 给你一个字符串 sentence 作为句子并指定检索词为 searchWord ,其中句子由若干用 单个空格 分隔的单词组成。 请你检查检索词 searchWord 是否为句子 sentence 中任意单词的前缀。 如果 searchWord 是某一个单词的前缀,则返回句子 sentence 阅读全文
posted @ 2020-11-26 12:14 for_ward 阅读(29) 评论(0) 推荐(0)
摘要:题目:给你一个字符串 s ,请你根据下面的算法重新构造字符串: 从 s 中选出 最小 的字符,将它 接在 结果字符串的后面。 从 s 剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。 重复步骤 2 ,直到你没法从 s 中选择字符。 从 s 中选出 最大 的字符 阅读全文
posted @ 2020-11-26 10:42 for_ward 阅读(116) 评论(0) 推荐(0)
摘要:题目:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。 解法:纵向扫描 思路:每次扫描每个字符串的某一列,判断是否都相等,都相等则加入到结果中,否则返回当前结果 代码: class Solution { public String longestCommonPr 阅读全文
posted @ 2020-11-26 10:36 for_ward 阅读(78) 评论(0) 推荐(0)
摘要:题目:给你两个二进制字符串,返回它们的和(用二进制表示)。输入为 非空 字符串且只包含数字 1 和 0。 代码: class Solution { public String addBinary(String a, String b) { int i = a.length()-1; int j = 阅读全文
posted @ 2020-11-20 15:19 for_ward 阅读(90) 评论(0) 推荐(0)
摘要:题目:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 解法:动态规划 思路:数学符号:dp[i][j]表示s[i-j]是否为回文子串;状态转移方程:按列填表,当i=j时都为true,当j=i+1时,只需判断两个字符是否相等,其他情况dp[i][j]=(dp[ 阅读全文
posted @ 2020-11-20 13:29 for_ward 阅读(95) 评论(0) 推荐(0)
摘要:题目:把字符串 s 看作是“abcdefghijklmnopqrstuvwxyz”的无限环绕字符串,所以 s 看起来是这样的:"...zabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcd....". 现在我们有了另一个字符串 p 。你需要 阅读全文
posted @ 2020-11-18 16:23 for_ward 阅读(105) 评论(0) 推荐(0)
摘要:题目:给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词 解法:动态规划 思路:数学符号:dp[i]表示前i个字符是否可以被空格拆分为一个或多个在字典中出现的单词;状态转移方程:当dp[i]true并且s[i,j)出现在wo 阅读全文
posted @ 2020-11-17 15:46 for_ward 阅读(183) 评论(0) 推荐(0)
摘要:题目:给你一个字符串数组 words ,数组中的每个字符串都可以看作是一个单词。请你按 任意 顺序返回 words 中是其他单词的子字符串的所有单词 思路:首先合并字符串数组中的每一个字符串(以空格分开),为S,若某字符串在S中的出现次数 >= 2,则说明是子串 代码: class Solution 阅读全文
posted @ 2020-11-11 18:19 for_ward 阅读(123) 评论(0) 推荐(0)
摘要:题目:字符串轮转。给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成(比如,waterbottle是erbottlewat旋转后的字符串) 思路:长度相等时,若s2是s1旋转而成的,那么把s2和自身拼接一次,s1就会出现在其中 代码:class Solution { public boo 阅读全文
posted @ 2020-11-11 16:53 for_ward 阅读(92) 评论(0) 推荐(0)
摘要:题目:给定一个字符串来代表一个学生的出勤记录,这个记录仅包含以下三个字符:'A' : Absent,缺勤;'L' : Late,迟到;'P' : Present,到场 代码:class Solution { public boolean checkRecord(String s) { int cou 阅读全文
posted @ 2020-11-11 11:15 for_ward 阅读(82) 评论(0) 推荐(0)
摘要:题目:给你一个整数 n,请你每隔三位添加点(即 "." 符号)作为千位分隔符,并将结果以字符串格式返回。 思路:先算出要加入点的个数,再找出每个点插入的位置 代码: class Solution { public String thousandSeparator(int n) { if(n0){ r 阅读全文
posted @ 2020-11-11 10:30 for_ward 阅读(122) 评论(0) 推荐(0)
摘要:题目:定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 解法:双指针 思路:让i指向开始,j指向末尾,同时开始找字母,找到后再判断是否相等即可,当i>=j时结束即可 代码: //回文串是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串 cl 阅读全文
posted @ 2020-11-10 19:41 for_ward 阅读(86) 评论(0) 推荐(0)
摘要:题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. ",则输出"student. a am I" 解法一:双指针 思路:从后往前找单词的边界,用i指向单词的前一个位置,j指向单词的末尾 代码: 阅读全文
posted @ 2020-11-10 16:44 for_ward 阅读(59) 评论(0) 推荐(0)

1