image.png题目描述:1000: 回文串问题
“回文串”是一个正读和反读都一样的字符串,字符串由数字和小写字母组成,比如“level”或者“abcdcba”等等就是回文串。请写一个程序判断读入的字符串是否是“回文”。
输入:输入包含多个测试实例,每一行对应一个字符串,串长最多100字母。
输出: 对每个字符串,输出它是第几个,如第一个输出为"case1: ";如果一个字符串是回文串,则输出"yes",否则输出"no",在yes/no之前用一个空格。
实现思路:从第一个开始,依次对比收尾字符是否相同即可;
在PIPIOJ上使用Java运行时,使用 inScanner.hasNext()判断持续输入可正确执行
代码实现
public class Palindrome {
public static void main(String[] args) {
Scanner inScanner = new Scanner(System.in);
int cnt = 1;
String string,showString = "case";
while (inScanner.hasNext()) {
string = inScanner.nextLine();
if (null != string && string.length() > 0) {
showString = showString + cnt + ": ";
showString = isPalindrome(string) ? showString + "yes" : showString + "no";
System.out.println(showString);
cnt++;
showString = "case";
}
}
}
/**
* 判断是否回文字符串
* @param string
* @return
*/
public static boolean isPalindrome(String string) {
int len = string.length();
int mid = len / 2;
for (int i = 0; i <= mid; i++) { // 直接两边调用依次对比即可
if (string.charAt(i) != string.charAt(len - i - 1)) {
return false;
}
}
return true;
}
}
网友评论