Getting Time Limit exceeded error for below program reverse k char for every 2k
public static String reverseStr(String s, int k) {
        char[] arr = s.toCharArray();
        	//System.out.println(arr.length);
        int start = 0;
        if(s.length()<k){
            System.out.println(arr.length);
            reverse(start,s.length(),arr);
            return new String(arr);
        }
        for(int i=0;i<s.length();i++){
            if(i==((2*k-1)+start))
            {
                reverse(start, start+k, arr);
                start = i+1;
            }
        }
        
        if(start+k<s.length()){
            reverse(start, start+k, arr);
        }else{
             reverse(start, s.length(), arr);
        }
        return new String(arr);
    }
    
    public static void reverse(int start, int end, char[] arr){
        while(start<(end/2)){
            char temp = arr[start];
            arr[start]=arr[end-start];
            arr[end-start] = temp;
        }
    }
Comments (1)