IMAUOJ-1242 Problem C:回文串(的判断)

题目描述

对于一个字符串如果从前往后读和从后往前读是一样的,那么我们就叫他回文串。

输入

输入数据有多组,每组包括一个字符串s(s长度≤50,字符串中不包含空格)。

输出

对于每个字符串输出其是否是回文串。如果是回文串输出“Y”,否则输出“N”。

样例输入

ABC

aabbaa

样例输出

N

Y

个人题目思路

首先利用StringBuffer将输入的字符串拷贝并通过reverse方法倒置,创建一个计数变量,将输入的字符串的已倒置的字符串同时以charAt(i)遍历,若相同计数加1,最后判断计数变量是否与字符串长度相等,若相等则是回文串。

源代码

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		String str = "";
		Scanner input = new Scanner(System.in);
		while(input.hasNext()) {
			str = input.next();
			StringBuffer sb = new StringBuffer(str);
			sb.reverse();
			int count = 0;
			for (int i = 0; i < str.length(); i++) {
				if (str.charAt(i) == sb.charAt(i)) {
					count++;
				}
			}
			if (count == str.length()) 
				System.out.println("Y");
			else 
				System.out.println("N");
		}
	}
}

注:

(1)String:是对象不是原始类型.为不可变对象,一旦被创建,就不能修改它的值.对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.String 是final类,即不能被继承

(2)StringBuffer:是一个可变对象,当对他进行修改的时候不会像String那样重新建立对象。它只能通过构造函数来建立对象被建立以后,在内存中就会分配内存空间,并初始保存一个null.向StringBuffer中赋值的时候可以通过它的append方法.
 

你可能感兴趣的:(练习,OJ,JAVA)