1. 程式人生 > >牛客網在線編程:統計回文數

牛客網在線編程:統計回文數

第一個 ring generate buffer sta lean col evel 幫助

題目描述:

“回文串”是一個正讀和反讀都一樣的字符串,比如“level”或者“noon”等等就是回文串。花花非常喜歡這種擁有對稱美的回文串,生日的時候她得到兩個禮物分別是字符串A和字符串B。現在她非常好奇有沒有辦法將字符串B插入字符串A使產生的字符串是一個回文串。你接受花花的請求,幫助她尋找有多少種插入辦法可以使新串是一個回文串。如果字符串B插入的位置不同就考慮為不一樣的辦法。
例如:
A = “aba”,B = “b”。這裏有4種把B插入A的辦法:
* 在A的第一個字母之前: "baba" 不是回文
* 在第一個字母‘a’之後: "abba" 是回文
* 在字母‘b’之後: "abba" 是回文
* 在第二個字母‘a‘之後 "abab" 不是回文
所以滿足條件的答案為2
輸入描述:
每組輸入數據共兩行。
第一行為字符串A
第二行為字符串B
字符串長度均小於100且只包含小寫字母
輸出描述:
輸出一個數字,表示把字符串B插入字符串A之後構成一個回文串的方法數
示例1
輸入

aba
b
輸出

2
思路:
簡單的String操作。
1、判斷回文
2、subString(i,j)
3、StringBuilder/StringBuffer中insert的用法

 1 import java.util.*;
 2 public class Tongjihuiwen {
 3     public static boolean huiwen(String s){
 4         int i = 0;
 5         int j = s.length()-1;
 6         while(i<j){
 7             if(s.charAt(i)!=s.charAt(j)){
8 return false; 9 } 10 i++; 11 j--; 12 } 13 return true; 14 } 15 public static void main(String[] args) { 16 // TODO Auto-generated method stub 17 Scanner sc = new Scanner(System.in); 18 String str1 = sc.nextLine();
19 String str2 = sc.nextLine(); 20 21 //StringBuffer sb = new StringBuffer(str1); 22 //System.out.println(sb.toString()); 23 // if(huiwen(sb.toString())==true)System.out.println(1); 24 // else { 25 // System.out.println(0); 26 // } 27 // int count = 0; 28 // for(int i = 0;i<=str1.length();i++){ 29 // String string = str1.substring(0,i)+str2+str1.substring(i,str1.length()); 30 // if(huiwen(string)==true){ 31 // count++; 32 // } 33 // } 34 int count = 0; 35 for(int i = 0; i <= str1.length();i++){ 36 StringBuilder sb = new StringBuilder(str1); 37 sb.insert(i, str2); 38 if(huiwen(sb.toString())){ 39 System.out.println(sb); 40 count++; 41 } 42 } 43 System.out.println(count); 44 } 45 46 }

牛客網在線編程:統計回文數