从0开始到华五复试 字符串

344. 反转字符串 - 力扣(LeetCode)

字符串本质就是数组,采用双指针的方法,一个在前一个在后即可,不断交换。

而还有一个点是,字符串有奇数偶数的情况,我们可以用一个i

class Solution {
public:
    void reverseString(vector& s) {
        for(int i=0,j=s.size()-1;i

541. 反转字符串 II - 力扣(LeetCode)

思路:问题是在于处理每经过2k要反转前k个字符,若是利用for循环中i+=2*k,即可遍历每次起点,再利用reverse即可。而<2k其实不用判断,因为只要剩余的大于k,那么就翻转前k个即可,若小于k则直接翻转(比如剩余k+1个话,直接就翻转前k个,然后最后一个不用管了,直接return即可,最后一个不算是少于k个的,因为其在遍历的2k个元素内)

class Solution {
public:
    string reverseStr(string s, int k) {
        for(int i=0;i

马上就出考研成绩了,希望能进复试吧!!许愿一下,然后继续坚持刷题

你可能感兴趣的:(算法,数据结构)