PIPI:1000: 回文串问题简单办法实现(Java)

题目描述:1000: 回文串问题
“回文串”是一个正读和反读都一样的字符串,字符串由数字和小写字母组成,比如“level”或者“abcdcba”等等就是回文串。请写一个程序判断读入的字符串是否是“回文”。
输入:输入包含多个测试实例,每一行对应一个字符串,串长最多100字母。
输出: 对每个字符串,输出它是第几个,如第一个输出为"case1: ";如果一个字符串是回文串,则输出"yes",否则输出"no",在yes/no之前用一个空格。

image.png

实现思路:从第一个开始,依次对比收尾字符是否相同即可;
在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;
    }
}

你可能感兴趣的:(PIPI:1000: 回文串问题简单办法实现(Java))