问题:
要牢记输入多行字符的方法。cin.nextLine();->string s=cin.nextLine();
在处理for循环时,开始采用i>=j就停止的方式,并没有效果,后来改为i<=s.length()/2.
Palindromes _easy version
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 27177 Accepted Submission(s): 16504
Problem Description
“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。请写一个程序判断读入的字符串是否是“回文”。
Input
输入包含多个测试实例,输入数据的第一行是一个正整数n,表示测试实例的个数,后面紧跟着是n个字符串。
Output
如果一个字符串是回文串,则输出"yes",否则输出"no".
Sample Input
4 level abcde noon haha
Sample Output
yes no yes no
代码:
import java.util.*;
public class Main{
public static void main(String args[]){
Scanner cin=new Scanner(System.in);
int n=cin.nextInt();
String s;
cin.nextLine();
for(int t=0;t<n;t++){
s=cin.next();
char[] a=s.toCharArray();
int k=1;
for(int i=0,j=s.length()-1;i<=s.length()/2;i++,j--){
if(a[i]!=a[j]){
k=0;
break;
}
}
if(k==1)
System.out.println("yes");
else
System.out.println("no");
}
}
}