• 541. 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]
    class Solution {
        public String reverseStr(String s, int k) {
            int n = s.length();
            StringBuilder sb = new StringBuilder();
            
            for(int i = 0; i < n; ) {
                if(n - i < k) {
                    sb.append(rev(s.substring(i, n)));
                    return sb.toString();
                }
                else if(n - i >= k && n - i < 2*k) { 
                    sb.append(rev(s.substring(i, i+k))).append(s.substring(i+k));
                    return sb.toString();
                }
                else {
                    sb.append(rev(s.substring(i, i+k))).append(s.substring(i+k, i+2*k));
                    i+=2*k;
                }
            }
            return sb.toString();
        }
        public String rev(String s) {
            return new StringBuilder(s).reverse().toString();
        }
    }
  • 相关阅读:
    Java面向对象
    JBCD技术
    初识数据库(其他数据库对象)
    初识数据库(TCL语句)
    初识数据库(分组函数)
    初识数据库(函数)
    初识数据库(数据类型)
    Java中的IO流
    Java中的线程
    Java中的集合
  • 原文地址:https://www.cnblogs.com/wentiliangkaihua/p/13516841.html
Copyright © 2020-2023  润新知