public class ReverseWordofString {
public static void main(String[] args) {
String str = "Google is my dream company";
System.out.println(str);
char[] carr = str.toCharArray();
reverse(carr, 0, carr.length);
int start = 0, end = 0;
for (int i = start; i < carr.length; i++) {
if (carr[i] == ' ') {
end = i;
reverse(carr, start, end);
start = end + 1;
} else if (i == carr.length - 1) {
end = i + 1;
reverse(carr, start, end);
}
}
System.out.println(new String(carr));
}
private static void reverse(char[] arr, int start, int end) {
end = end - 1;
int len = start + (end - start) / 2;
for (int k = start; k <= len; k++, end--) {
char temp = arr[k];
arr[k] = arr[end];
arr[end] = temp;
}
}
}
public static void main(String[] args) {
String str = "Google is my dream company";
System.out.println(str);
char[] carr = str.toCharArray();
reverse(carr, 0, carr.length);
int start = 0, end = 0;
for (int i = start; i < carr.length; i++) {
if (carr[i] == ' ') {
end = i;
reverse(carr, start, end);
start = end + 1;
} else if (i == carr.length - 1) {
end = i + 1;
reverse(carr, start, end);
}
}
System.out.println(new String(carr));
}
private static void reverse(char[] arr, int start, int end) {
end = end - 1;
int len = start + (end - start) / 2;
for (int k = start; k <= len; k++, end--) {
char temp = arr[k];
arr[k] = arr[end];
arr[end] = temp;
}
}
}
public String reverseWords(String s) {
int low=0;
int hi=s.length();
char[] arr=s.toCharArray();
reverse(arr,low,hi);
System.out.println(arr);
for(int i=0; i<arr.length; i++){
if(arr[i]==' '){
hi=i;
reverse(arr,low,hi);
low=i+1;
}else if(i==arr.length-1){
reverse(arr,low,i+1);
}
}
return new String(arr);
}
void reverse(char [] arr, int lo, int hi){
hi=hi-1;
while(lo<hi){
char c =arr[lo];
arr[lo]=arr[hi];
arr[hi]=c;
lo++;
hi--;
}
}
No comments:
Post a Comment