本文主要是介绍【代码随想录算法训练营第42期 第八天 | LeetCode344.反转字符串、541. 反转字符串II、卡码网:54.替换数字】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
代码随想录算法训练营第42期 第八天 | LeetCode344.反转字符串、541. 反转字符串II、卡码网:54.替换数字
一、344.反转字符串
解题代码C:
void reverseString(char* s, int sSize){int left = 0;int right = sSize - 1;while(left < right) {char temp = s[left];s[left++] = s[right];s[right--] = temp;}
}
题目链接/文章讲解/视频讲解:
https://programmercarl.com/0344.%E5%8F%8D%E8%BD%AC%E5%AD%97%E7%AC%A6%E4%B8%B2.html
二、541. 反转字符串II
解题代码C:
char * reverseStr(char * s, int k){int len = strlen(s);for (int i = 0; i < len; i += (2 * k)) {//判断剩余字符是否少于 kk = i + k > len ? len - i : k;int left = i;int right = i + k - 1;while (left < right) {char temp = s[left];s[left++] = s[right];s[right--] = temp;}}return s;
}
题目链接/文章讲解/视频讲解:
https://programmercarl.com/0541.%E5%8F%8D%E8%BD%AC%E5%AD%97%E7%AC%A6%E4%B8%B2II.html
三、卡码网:54.替换数字
解题代码C++:
#include <iostream>
using namespace std;
int main() {string s;while (cin >> s) {int sOldIndex = s.size() - 1;int count = 0; // 统计数字的个数for (int i = 0; i < s.size(); i++) {if (s[i] >= '0' && s[i] <= '9') {count++;}}// 扩充字符串s的大小,也就是将每个数字替换成"number"之后的大小s.resize(s.size() + count * 5);int sNewIndex = s.size() - 1;// 从后往前将数字替换为"number"while (sOldIndex >= 0) {if (s[sOldIndex] >= '0' && s[sOldIndex] <= '9') {s[sNewIndex--] = 'r';s[sNewIndex--] = 'e';s[sNewIndex--] = 'b';s[sNewIndex--] = 'm';s[sNewIndex--] = 'u';s[sNewIndex--] = 'n';} else {s[sNewIndex--] = s[sOldIndex];}sOldIndex--;}cout << s << endl; }
}
题目链接/文章讲解/视频讲解:
https://programmercarl.com/kama54.%E6%9B%BF%E6%8D%A2%E6%95%B0%E5%AD%97.html
这篇关于【代码随想录算法训练营第42期 第八天 | LeetCode344.反转字符串、541. 反转字符串II、卡码网:54.替换数字】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!