1. 程式人生 > >IMAUOJ-1241 Problem C:迴文串(的判斷)

IMAUOJ-1241 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方法.