给定一个字符串"azza"
。在此a-z = 25
,z-z = 0
,z-a = 25
中。但由于字母表是循环的,我需要在'a'
之后'z'
,即上面的字符串z-a = 1
。
对于我们没有遇到的正常字符串' a
'就在' z
'之后,我的代码就是这个
class TestClass {
public static void main(String args[] ) throws Exception {
Scanner sc = new Scanner(System.in);
int i;
int t = sc.nextInt();
sc.nextLine();
for(i=0;i<t;i++)
{
String s =sc.nextLine();
char[] string =s.toCharArray();
for(i=0;i<string.length;i++)
{
if((string[i]-string[i+1])==1 || (string[i]-string[i+1])==-1)
{
System.out.println("1");
}
}
}
}
}
答案 0 :(得分:2)
首先,反向减法:当您需要在方案中计算z-a
时,请计算'a'-'z'
,反之亦然。
这样你有时会得出负面结果。发生这种情况时,请为其添加26。这将起到“盘旋”的作用。
char first = 'a';
char last = 'z';
int diff = first - last; // negative 25
if (diff < 0) {
diff += 26;
}