DevShivmohan / Learning-everything

Learning for developer only
0 stars 1 forks source link

R & D programmings #31

Open DevShivmohan opened 1 year ago

DevShivmohan commented 1 year ago

Write java code to get below strings as a output

Solution code

/**
     *
     * @param input
     * @return
     */
    public static String getNumberedString(String input){
        int length=0;
        char oldChar=input.toCharArray()[0];
        StringBuilder stringBuilder=new StringBuilder();
        int index=-1;
        for(char ch:input.toCharArray()){
            index++;
            if(ch==oldChar){
                length++;
                if(index==input.length()-1)
                    stringBuilder.append(length).append(oldChar);
            }else {
                stringBuilder.append(length).append(oldChar);
                oldChar=ch;
                length=1;
            }
        }
        return stringBuilder.toString();
    }

Solution code

/**
     *
     * @param input
     * @return
     */
    public static String getNumberedString(String input){
        int length=0;
        char oldChar=input.toCharArray()[0];
        StringBuilder stringBuilder=new StringBuilder();
        int index=-1;
        for(char ch:input.toCharArray()){
            index++;
            if(ch==oldChar){
                length++;
                if(index==input.length()-1)
                    stringBuilder.append(length).append(oldChar);
            }else {
                stringBuilder.append(length).append(oldChar);
                oldChar=ch;
                length=1;
            }
        }
        char[] charArray=stringBuilder.reverse().toString().toCharArray();
        for(int i=0;i<charArray.length;i++)
            if(Character.isDigit(charArray[i]))
                swap(charArray,i,i-1);
        stringBuilder.delete(0,stringBuilder.length());
        for(char ch:charArray)
            stringBuilder.append(ch);
        return stringBuilder.toString();
    }

    public static void swap(char[] charArray,int firstIndex,int secondIndex){
        char temp=charArray[firstIndex];
        charArray[firstIndex]=charArray[secondIndex];
        charArray[secondIndex]=temp;
    }