回文字符串就是正读和反读都一样的字符串,如“viv”、“nexen”、“12321”、“qqq”、“翻身把身翻” 等。
给定一个非空字符串 str,在最多可以删除一个字符的情况下请编程判定其能否成为回文字符串;如果可以则输出首次删除一个字符所能得到的回文字符串,如果不行则输出字符串 "false" 。
一个非空字符串
一个回文字符串,或者 "false" 字符串(如果无法构造出回文字符串的话)
abda
ada
删除字符串"abda"中的一个字符 ‘b’ 后,得到 "ada"是一个回文字符串;删除一个字符 ‘d’ 后,得到 "aba"也是一个回文字符串;所以最终输出为 "ada"。
1、输入仅包含数字或字母;2、当分别删除不同的字符后,均可得到回文字符串时,输出首次删除一个字符所得到的回文字符串;若无法构造出回文字符串,则输出字符串false;
import java.util.*; public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.nextLine(); int l = str.length(); int i = 0; while(i < l) { String newStr = removeCharAt(str, i); //System.out.println(newStr); String reverse = new StringBuffer(newStr).reverse().toString(); //System.out.println(reverse); if(newStr.equals(reverse)) { System.out.println(newStr); break; } else { i++; if(i >= l) { System.out.println("false"); } } } } public static String removeCharAt(String s, int pos) { return s.substring(0, pos) + s.substring(pos + 1); }