Mz
BAN USERLike suggested by many it will be good to keep a boolean value to track alternate reversals.
Here is a working code in java:
public static String Reverse(String words) {
char[] letters = words.toCharArray();
letters = ReverseLetters(letters, 0, letters.length - 1);
String l = new String(letters);
System.out.println(l + "\n");
int start = 0;
int end = 0;
boolean isReversed = true;
while (end < letters.length) {
if ((letters[end] == ' ' || letters[end] == letters.length - 1)) {
if (isReversed) {
letters = ReverseLetters(letters, start, end - 1);
start = end + 1;
isReversed = false;
} else {
start = end + 1;
isReversed = true;
}
}
end++;
}
if (isReversed) {
letters = ReverseLetters(letters, start, end - 1);
}
return new String(letters);
}
private static char[] ReverseLetters(char[] letters, int start, int end) {
while (start < end) {
char temp = letters[end];
letters[end] = letters[start];
letters[start] = temp;
start++;
end--;
}
return letters;
}
RepA real dynamo when it comes to buying and selling carnival rides in Fort Lauderdale, FL. Spend several years working ...
We can separate the words and then check if its an 'a' word. We will have to parse the sentence atleast once.
- Mz July 13, 2013public static String CountAs(String words) {
char[] letters = words.toCharArray();
int start = 0;
int end = 0;
int count = 0;
while (end < letters.length) {
if ((letters[end] == ' ' || letters[end] == letters.length - 1)) {
if (chkForA(letters,start,end-1)) {
count++;
start = end + 1;
} else {
start = end + 1;
}
}
end++;
}
if (chkForA(letters,start,end-1)) {
count++;
}
return count;
}
private static boolean chkForA(char[] letters, int start, int i) {
if((start == i) && letters[start] == 'a')
return true;
else
return false;
}