我一直在试图让这段代码适用于谷歌foobar挑战,但我无法通过十个隐藏的测试用例中的两个。该代码要求你接收一个字符串,并通过向后取回字母表的等效字母并用它来替换它来“解码”它。此代码忽略大写字母和标点符号。FooBar java反向字母代码
public static void main(String[] args)
{
System.out.println(answer("wrw blf hvv ozhg mrtsg'h vkrhlwv?"));
}
public static String answer(String s) {
String decode = "";
char[] alphabet = "abcdefghijklmnopqrstuvwxyz".toCharArray();
char[] alphabet2 = "zyxwvutsrqponmlkjihgfedcba".toCharArray();
for(int i = 0; i < s.length(); i++)
{
int cint = (int)s.charAt(i);
boolean b = Character.isUpperCase(s.charAt(i));
if(b)
{
decode = decode + s.charAt(i);
}
if(!Character.isDigit(s.charAt(i)) && !Character.isLetter(s.charAt(i)))
{
decode = decode + s.charAt(i);
}
else
{
if(!b)
{
int h = search(s.charAt(i), alphabet);
decode = decode + alphabet2[h];
}
}
}
return decode;
// Your code goes here.
}
public static int search(char x, char[] y)
{
int p = 0;
for(int o = 0; o < y.length; o++)
{
if(y[o] == x)
{
p = o;;
}
}
return p;
}
+1
这个问题说,它只编码字母(实际上,只有小写字母),所以检查数字有什么意义? –