代码随想录 | 刷题-字符串
344.反转字符串
双指针法 1
2
3
4
5
6
7
8
9
10
11
12
13class Solution {
public:
void reverseString(vector<char>& s) {
int h = s.size() / 2;
int j = s.size() - 1;
for(int i = 0;i<h;i++){
char c = s[i];
s[i] = s[j];
s[j] = c;
j--;
}
}
};
541. 反转字符串II
主要还是注意语法的学习 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27class Solution {
public:
void rev(char* left, char* right){
while(left< right){
char c = *left;
*left = *right;
*right = c;
left++;
right--;
}
}
string reverseStr(string s, int k) {
int end = s.size() - 1;
int p = 0;
int n = 0;
while(p<end){
n = p + k - 1;
if(n <= end){
rev(&s[p], &s[n]);
}else{
rev(&s[p], &s[end]);
}
p = p+ 2* k;
}
return s;
}
};
卡码网:54.替换数字
题目描述:
给定一个字符串 s,它包含小写字母和数字字符,请编写一个函数,将字符串中的字母字符保持不变,而将每个数字字符替换为number。
例如,对于输入字符串 "a1b2c3",函数应该将其转换为 "anumberbnumbercnumber"。
对于输入字符串 "a5b",函数应该将其转换为 "anumberb"
输入:一个字符串 s,s 仅包含小写字母和数字字符。
输出:打印一个新的字符串,其中每个数字字符都被替换为了number
样例输入:a1b2c3
样例输出:anumberbnumbercnumber
数据范围:1 <= s.length < 10000
主要是学习字符串输入输出
1 |
|