java 1: ReverseStringInGroup: Please fill the function String reverseInGroup(Str
ID: 3809549 • Letter: J
Question
java
1: ReverseStringInGroup: Please fill the function String reverseInGroup(String str, int k) to reverse the given string in group with size as k.
Example 1: Input: str = “abcdef”, k = 2 Return: badcfe Example 2: Input: str = “abcdef”, k = 4 Return dcbafe
2: checkCapital: Please fill the function boolean checkCapital(String str) to check if the given string if a Capital String. A String is called a Capital String only if one of the following conditions is satisfied: a) All the characters in the String are capitals b) Only the first character is capital and the string has more than characters.
Example 1: Input: str = “Computer” Return: True Example 2: Input: str = “GOOD” Return True Example 3: Input: str = “AmericA” Return False
Explanation / Answer
//reverse the given string in group with size as k
String reverseInGroup(String str, int k)
{
int n=str.length(); // get length of given string
char[] strChars = str.toCharArray(); //convert string to char array as strings are immutable in java
for (int i = 0; i < n; i += k)
{
int left = i;
int right;
if((i+k-1)<(n-1))
right=(i+k-1);
else
right=n-1;
while (left < right)
{
// swap characters of k length
char temp=strChars[left];
strChars[left]=strChars[right];
strChars[right]=temp;
left++;
right--;
}
}
str= String.valueOf(strChars); //convert char array to string
return str;
}
// Function to check if the given string if a Capital String
public static boolean checkCapital(String str)
{
int n=str.length();
char[] strChars = str.toCharArray();
boolean isFirstCapital=false; // check if first letter is capital
boolean isLowerAfterFirst=false; // check if any letter after first letter is lower
boolean isUpperAfterFirst=false; // check if any letter after first letter is capital
if(Character.isLetter(strChars[0]) && Character.isUpperCase(strChars[0]))
{
isFirstCapital=true;
}
for (int i = 1; i < n; i ++)
{
if(Character.isLetter(strChars[i]) && Character.isLowerCase(strChars[i])) {
isLowerAfterFirst=true;
}
if(Character.isLetter(strChars[i]) && Character.isUpperCase(strChars[i])) {
isUpperAfterFirst=true;
}
}
if(isFirstCapital && !isLowerAfterFirst)
return true;
if(isFirstCapital && !isUpperAfterFirst)
return true;
return false;
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.