IMAUOJ-1241 Problem C:迴文串(的判斷)
阿新 • • 發佈:2018-12-19
題目描述
對於一個字串如果從前往後讀和從後往前讀是一樣的,那麼我們就叫他迴文串。
輸入
輸入資料有多組,每組包括一個字串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方法.