LeetCode Weekly Contest 23

1. Reverse String II

Given a string and an integer k, you need to reverse the first k characters for every 2k characters counting from the start of the string. If there are less than k characters left, reverse all of them. If there are less than 2k but greater than or equal to k characters, then reverse the first k characters and left the other as original.

Example
Input: s = "abcdefg", k = 2
Output: "bacdfeg"
Restrictions
  1. The string consists of lower English letters only.
  2. Length of the given string and k will in the range [1, 10000]

实现

#include <iostream>
#include <algorithm>

using namespace std;


class Solution {
public:
    string reverseStr(string s, int k) {
        int k2 = k * 2;
        int counter = 0;
        int size = s.length();
        string result = "";

        while(1) {
            if (counter + k > size) {
                string tmp(s.begin()+counter, s.end());
                reverse(tmp.begin(), tmp.end());
                result += tmp;
                return result;
            } else {
                if (counter + k2 <= size) {
                    string tmp(s.begin()+counter, s.begin()+counter+k);
                    reverse(tmp.begin(), tmp.end());
                    result += tmp;
                    string tmp2(s.begin()+counter+k, s.begin()+counter+k2);
                    result += tmp2;
                    counter += k2;
                } else {
                    string tmp(s.begin()+counter, s.begin()+counter+k);
                    reverse(tmp.begin(), tmp.end());
                    result += tmp;
                    counter += k;
                    string tmp2(s.begin()+counter, s.end());
                    result += tmp2;
                    return result;
                }
            }
        }
    }
};


int main() {
    Solution* solution = new Solution();
    cout << solution->reverseStr("abcdefg", 10) << endl;
    return 0;
}

2. Minimum Time Difference

3. Construct Binary Tree from String

4. Word Abbreviation

相关文章:

  • 2021-12-15
  • 2021-11-17
  • 2021-09-21
  • 2022-01-14
  • 2022-01-13
  • 2021-11-02
  • 2022-03-04
  • 2021-08-08
猜你喜欢
  • 2022-12-23
  • 2021-10-23
  • 2022-02-02
  • 2021-11-29
  • 2021-07-22
  • 2021-09-20
  • 2022-02-10
相关资源
相似解决方案