目录
- 1 介绍
- 2 训练
- 3 参考
1 介绍
本博客用来记录代码随想录leetcode200题中字符串部分的题目。
2 训练
题目1:344. 反转字符串
C++代码如下,
class Solution {
public:void reverseString(vector<char>& s) {int i = 0, j = s.size() - 1;while (i <= j) swap(s[i++], s[j--]);return;}
};
python3代码如下,
class Solution:def reverseString(self, s: List[str]) -> None:"""Do not return anything, modify s in-place instead."""i = 0j = len(s) - 1while i <= j:s[i], s[j] = s[j], s[i]i += 1j -= 1return
题目2:541. 反转字符串 II
C++代码如下,
class Solution {
public:string reverseStr(string s, int k) {int n = s.size();for (int i = 0; i < n; i += 2 * k) {//[i,i+2*k)//将[i,i+k)翻转int l = i;int r = min(i + k - 1, n - 1);while (l <= r) {swap(s[l], s[r]);l++;r--;}}return s;}
};
python3代码如下,
class Solution:def reverseStr(self, s: str, k: int) -> str:i = 0n = len(s)s = list(s)while i < n:l = i r = int(i + k - 1)r = min(r, n - 1)while l <= r:s[l], s[r] = s[r], s[l]l += 1r -= 1i += int(2 * k)s = "".join(s)return s
题目3:54. 替换数字(第八期模拟笔试)
C++代码如下,
#include <iostream>
#include <string>using namespace std;int main() {string s;cin >> s;string res;for (auto c : s) {if (c >= 'a' && c <= 'z') res += c;else res += "number";}cout << res << endl;return 0;
}
python3代码如下,
s = str(input())
res = ""
for c in s:if c.isdigit():res += "number"else:res += c
print(res)
题目4:151. 反转字符串中的单词
C++代码如下,
class Solution {
public:string reverseWords(string s) {vector<string> words;int n = s.size();for (int i = 0; i < n; ++i) {if (s[i] != ' ') {string t = "";while (i < n && s[i] != ' ') {t += s[i];i += 1;}words.emplace_back(t);}}reverse(words.begin(), words.end());string res = "";for (auto word : words) {res += word + " ";}res = res.substr(0, res.size()-1);return res;}
};
python3代码如下,
class Solution:def reverseWords(self, s: str) -> str:ls = s.split()ls = ls[::-1]res = ""for x in ls:res += x + " "res = res[0:-1]return res
题目5:55. 右旋字符串(第八期模拟笔试)
C++代码如下,
python3代码如下,
3 参考
代码随想录官网