题目
给出一个非空的字符串,判断这个字符串是否是由它的一个子串进行多次首尾拼接构成的。
例如,"abcabcabc"满足条件,因为它是由"abc"首尾拼接而成的,而"abcab"则不满足条件。
思路
暴力解,可以过:
import java.io.*;
public class Main {
public static void main(String[] ars) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String str = bf.readLine();
char[] arr = str.toCharArray();
int maxLen = 0;
String res = "";
for (int i = 0; i < arr.length / 2; i++) {
StringBuilder sb = new StringBuilder();
int j = 0;
while (j <= i) {
sb.append(arr[j++]);
}
String sub = sb.toString(); //最长子串
while (sb.length() < str.length()) {
sb.append(sub);
}
String after = sb.toString();
if (after.equals(str) && sub.length() > res.length()) {
res = sub;
}
}
System.out.println(res.equals("") ? false : res);
}
} 总结
今天开始笔试锻炼,每日一题。笔试无限跪,迎哥说去搞搞 CF ,结果他自己被 CF DIV2 B 题劝退了。。。就说叫我搞真题试试,半信半疑,招行信用卡 2018 第一道。

京公网安备 11010502036488号