zoukankan      html  css  js  c++  java
  • LeetCode Weekly Contest 23

    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

  • 相关阅读:
    Neo4j简介
    HiBench算法简介
    Spark性能测试工具
    常用Benchmark
    Mapreduce的性能调优
    YARN node labels
    Yarn on Docker集群方案
    YARN on Docker
    HDP YARN MapReduce参数调优建议
    JVM优化:生产环境参数实例及分析
  • 原文地址:https://www.cnblogs.com/zhonghuasong/p/6537443.html
Copyright © 2011-2022 走看看