蓝桥杯-爱代码爱编程
问题描述
一个字符串如果从左向右读和从右向左读相同,则称为一个回文串,例如 lanqiaoaiqnal 是一个回文串。
小蓝有一个字符串,请将这个字符串右边加上一些字符,使其成为一个回文串。
如果有多种方案,请输出最短的回文串。
输入格式
输入一行包含一个字符串,由小写英文字母组成。
输出格式
输出一行包含答案。
样例输入 1
lanqiao
样例输出 1
lanqiaoaiqnal
样例输入 2
banana
样例输出 2
bananab
样例输入 3
noon
样例输出 3
noon
评测用例规模与约定
对于所有评测用例,1 <= 字符串长度 <= 100。
运行限制
最大运行时间:1s
最大运行内存: 256M
代码
import java.util.Scanner;
public class 补齐回文串 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String s = scanner.next();
String str = "";
if (isZiFuChuan(s)) {
System.out.println(s);
} else {
for (int i = 0; i < s.length(); i++) {
str = s.charAt(i) + str;
if (isZiFuChuan(s + str)) {
System.out.println(s + str);
return;
}
}
}
}
private static boolean isZiFuChuan(String s) {
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) != s.charAt(s.length() - 1 - i)) {
return false;
}
}
return true;
}
}