做期货看资讯什么网站好,北京网站制作 建设推广,网站设计师是做什么的,温江区规划建设局网站第一题#xff1a;
原题链接#xff1a;344. 反转字符串 - 力扣#xff08;LeetCode#xff09;
思路#xff1a;
双指针#xff0c;一根指向字符串的头部#xff0c;一根指向字符串的尾部。两个指针向中间移动#xff0c;交换两根指针指向的值。
代码如下#xf…第一题
原题链接344. 反转字符串 - 力扣LeetCode
思路
双指针一根指向字符串的头部一根指向字符串的尾部。两个指针向中间移动交换两根指针指向的值。
代码如下
class Solution {
public:void reverseString(vectorchar s) {for(int i 0, j s.size() - 1; i j; i, j--){swap(s[i], s[j]);}return;}
};
第二题
原题链接541. 反转字符串 II - 力扣LeetCode
思路
题目要求的是遍历到2k个字符然后反转2k字符的前k个字符。
于是我们遍历的时候直接i 2 * k。这样我们就直接指向要反转的第一个元素。然后判断i k是否超过了边界如果没有超过直接反转前k个元素即可若超过了就反转剩下的元素。
代码如下
class Solution {
public:string reverseStr(string s, int k) {for(int i 0; i s.size(); i2 * k){if(i k s.size()){for(int m i, n i k - 1; m n; m, n--){swap(s[m], s[n]);}}else{for(int m i, n s.size() - 1; m n; m, n--){swap(s[m], s[n]);}}}return s;}
};
反转可以用reverse(s.begin() i, s.begin() i k);
第三题
原题链接54. 替换数字第八期模拟笔试 (kamacoder.com)
思路
先找出这个字符串中出现数字的个数然后乘5然后将字符串扩容。
然后从末尾遍历将字符填入对应的位置。