[CrackCode] 1.2 Write code to reverse a C-Style String

时间:2021-07-31 22:25:52

Write code to reverse a C-Style String (C-String means that “abcd” is represented asfive characters, including the null character ) 

===========

Analysis:

Basic idea is to setup two pointers, one on left of the string and one on right, then keep switching the the value of these two elements till centre of the string reached.  In order to deal with the null character issue, right pointer start from the last character-1.

Note that we do not have method to set character in a string, so we transform the string to an char array (String.toCharArray), after processing, we transform it back to the string (new String(CharArray)).

package Question1_2;

public class Question {
	public static String solution(String str){
		if(str.length()<3) return str;
		char[] tempArray = str.toCharArray();
		int left=0;
		int right=str.length()-2;
		while(left<right){
			char temp=tempArray[left];
			tempArray[left] = tempArray[right];
			tempArray[right] = temp;
			left++;
			right--;
		}
		str = new String(tempArray);
		return str;
		}
	 
    public static void main(String[] args) {
        System.out.println(solution("hello world"+"\0"));
        System.out.println(solution("mihir"+"\0"));
    }
}