Challenge
Using the C# language, have the function
LetterChanges(str) take the
str parameter being passed and modify it using the following algorithm. Replace every letter in the string with the letter following it in the alphabet (
ie. c becomes d, z becomes a). Then capitalize every vowel in this new string (a, e, i, o, u) and finally return this modified string.
Sample Test Cases
Input:"hello*3"
Output:"Ifmmp*3"
Input:"fun times!"
Output:"gvO Ujnft!"
Letter Changes算法意思是替换字母(b->a、c->b、....z->a;同样大写也是),元音字符a\e\i\o\u返回大写。
public static string LetterChanges(string str)
{
char[] chArray = str.ToArray();
int length = chArray.Length;
char ch = '\0';
for (int i = 0; i < length; i++)
{
ch = chArray[i];
if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
{
ch++;
if (ch == 'z' + 1)
{
ch = 'a';
}
else if (ch == 'Z' + 1)
{
ch = 'A';
}
if (IsCharVowelCharacter(ch))
{
ch = (char)(ch - 32);
}
}
chArray[i] = ch;
}
str = new string(chArray);
return str;
}
private static bool IsCharVowelCharacter(char ch)
{
return ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u';
}