zoukankan      html  css  js  c++  java
  • LeetCode 541. Reverse String II

    question:

    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:
    
        The string consists of lower English letters only.
        Length of the given string and k will in the range [1, 10000]

    try:

    class Solution {
        public String reverseStr(String s, int k) {
            char[] charArray=s.toCharArray();
            int length=charArray.length;
            char[] result=new char[length];
            
            for(int i=0;i<length;i++){
                if((i/k)%2==0){
                    if(length<((i/k)*k+k)){
                        result[length-1-i%k]=charArray[i];
                        //continue;
                    }else{
                        result[(i/k)*k+k-1-i%k]=charArray[i];     
                    }

                    
                }else {
                    result[i]=charArray[i];
                }
                    
            }
            return new String(result);
        }
    }

     result: 22.58%

    conclusion:

  • 相关阅读:
    排序_简单选择排序
    排序_冒泡排序
    笔试_阿里_逆波兰表达式
    刷题_牛客_大整数排序
    刷题_牛客_字符串编码
    刷题_thinkinginjava_吸血鬼数字
    刷题_牛客_超级素数幂
    刷题_LeetCode_Two Sum
    刷题_LeetCode_Reverse Integer
    854. Floyd求最短路(模板)
  • 原文地址:https://www.cnblogs.com/hzg1981/p/8971683.html
Copyright © 2011-2022 走看看