字符串
字符串相关算法练习
另一花生
竹杖芒鞋轻胜马,一蓑烟雨任平生
展开
-
8. 字符串转换整数 (atoi)
请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。函数 myAtoi(string s) 的算法如下:读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。将前面步骤读入的这些数字转换为整数(即,"123"原创 2022-01-25 14:53:08 · 551 阅读 · 0 评论 -
541. 反转字符串 II
给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。如果剩余字符少于 k 个,则将剩余字符全部反转。 如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。输入:s = "abcdefg", k = 2输出:"bacdfeg"输入:s = "abcd", k = 2输出:"bacd"class Solution { public String reverseStr(S原创 2022-01-18 00:38:23 · 506 阅读 · 0 评论 -
151. 翻转字符串里的单词
给你一个字符串 s ,逐个翻转字符串中的所有 单词 。单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。请你返回一个翻转 s 中单词顺序并用单个空格相连的字符串。说明:输入字符串 s 可以在前面、后面或者单词间包含多余的空格。 翻转后单词间应当仅用一个空格分隔。 翻转后的字符串中不应包含额外的空格。输入:s = "the sky is blue"输出:"blue is sky the"输入:s = " hello world "输出..原创 2022-01-17 09:02:20 · 220 阅读 · 0 评论 -
剑指 Offer 05. 替换空格
请实现一个函数,把字符串s中的每个空格替换成"%20"。输入:s = "We are happy."输出:"We%20are%20happy."class Solution {public String replaceSpace(String s) { if(s == null || s.length() == 0){ return s; } //扩充空间,空格数量2倍 StringBuilder str = new StringBui..原创 2022-01-17 08:08:05 · 195 阅读 · 0 评论 -
171. Excel 表列序号
给你一个字符串 columnTitle ,表示 Excel 表格中的列名称。返回该列名称对应的列序号。 A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ...输入: columnTitle = "A"输出: 1输入: columnTitle = "AB"输出: 28输入: columnTitle = "ZY"输出...原创 2022-01-11 08:23:59 · 239 阅读 · 0 评论 -
168. Excel表列名称
给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。A -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28 ...输入:columnNumber = 1输出:"A"输入:columnNumber = 28输出:"AB"输入:columnNumber = 701输出:"ZY"输入:columnNumber = 2147483647输出原创 2022-01-11 00:51:15 · 104 阅读 · 0 评论 -
NC55最长公共前缀
描述编写一个函数来查找字符串数组中的最长公共前缀。示例1输入:["abca","abc","abca","abc","abcc"]复制返回值:"abc"原创 2021-05-29 17:14:50 · 399 阅读 · 0 评论 -
字符串变形
描述对于一个给定的字符串,我们需要在线性(也就是O(n))的时间里对它做一些变形。首先这个字符串中包含着一些空格,就像"Hello World"一样,然后我们要做的是把着个字符串中由空格隔开的单词反序,同时反转每个字符的大小写。比如"Hello World"变形后就变成了"wORLD hELLO"。输入描述:给定一个字符串s以及它的长度n(1≤n≤500)返回值描述:请返回变形后的字符串。题目保证给定的字符串均由大小写字母和空格构成。示例1"This is a sample",1原创 2021-05-27 00:27:48 · 281 阅读 · 0 评论 -
557. 反转字符串中的单词 III
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。输入:"Let's take LeetCode contest"输出:"s'teL ekat edoCteeL tsetnoc"class Solution { public String reverseWords(String s) { int len = s.length(); int i = 0; char[] chars = s.toCha原创 2021-12-30 13:48:52 · 179 阅读 · 0 评论 -
反转字符串
写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000) /** * 反转字符串 * @param str string字符串 * @return string字符串 */ public String solve (String str) { //可以用字符串数组去做 if(str == null || str.length() == 0){ return str; .原创 2021-03-17 01:07:51 · 218 阅读 · 0 评论 -
567. 字符串的排列
给你两个字符串 s1 和 s2 ,写一个函数来判断 s2 是否包含 s1 的排列。如果是,返回 true ;否则,返回 false 。换句话说,s1 的排列之一是 s2 的 子串 。输入:s1 = "ab" s2 = "eidbaooo"输出:true解释:s2 包含 s1 的排列之一 ("ba").输入:s1= "ab" s2 = "eidboaoo"输出:false方法:双指针(滑动窗口)排列不讲究顺序,但是字符出现的 种类 和 次数 要恰好对应相等;暴力解法.原创 2021-12-31 01:49:32 · 275 阅读 · 0 评论 -
无重复字符的最长子串
public int lengthOfLongestSubstring(String s) { // 记录字符上一次出现的位置 int[] last = new int[128]; for(int i = 0; i < 128; i++) { last[i] = -1; } int n = s.length(); int res = 0; int start = 0; ...原创 2021-12-07 01:43:51 · 3708 阅读 · 0 评论 -
最长无重复子数组
描述给定一个数组arr,返回arr的最长无重复元素子数组的长度,无重复指的是所有数字都不相同。子数组是连续的,比如[1,3,5,7,9]的子数组有[1,3],[3,5,7]等等,但是[1,3,7]不是子数组示例1输入:[2,3,4,5]返回值:4复制说明:[2,3,4,5]是最长子数组 示例2输入:[2,2,3,4,3]复制返回值:3复制说明:[2,3,4]是最长子数组 示例3输入:[9]复制返回值:原创 2021-05-30 17:25:00 · 1770 阅读 · 0 评论 -
3. 无重复字符的最长子串长度
给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。class Solution { public int lengthOfLongestSubstring(String s) { // 记录字符上一次出现的位置 ...原创 2021-12-28 20:04:29 · 222 阅读 · 0 评论