百度3.13后端笔试第二道
r,e,d三个字符,能否构成含有 cnt 个回文串的字符串 s
原理:n个相同的字符构建的回文子串的个数为n(n+1)/2,其余的用edr补
```
public static void deal1() {
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
int n = (int) (Math.sqrt(2*x + 0.25) - 0.5);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < n; i++) {
sb.append("r");
}
n = n * (n+1) / 2;
int y = (x - n) / 3;
for (int i = 0; i < y; i++) {
sb.append("edr");
}
if (n + y * 3 == x) {
System.out.println(sb);
} else if (n + y * 3 + 1 == x) {
sb.append("e");
System.out.println(sb);
} else if (n + y * 3 + 2 == x) {
sb.append("ed");
System.out.println(sb);
}
```
原理:n个相同的字符构建的回文子串的个数为n(n+1)/2,其余的用edr补
```
public static void deal1() {
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
int n = (int) (Math.sqrt(2*x + 0.25) - 0.5);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < n; i++) {
sb.append("r");
}
n = n * (n+1) / 2;
int y = (x - n) / 3;
for (int i = 0; i < y; i++) {
sb.append("edr");
}
if (n + y * 3 == x) {
System.out.println(sb);
} else if (n + y * 3 + 1 == x) {
sb.append("e");
System.out.println(sb);
} else if (n + y * 3 + 2 == x) {
sb.append("ed");
System.out.println(sb);
}
```
全部评论
相关推荐
今天 17:10
门头沟学院 Java 点赞 评论 收藏
分享
白金之星世界:坏了,我俩一模一样,就连学校也都是双一流
]。我是从六月二十几号开始学的,跟的是优雅的路线。javase学完,现在在学mysql。每天学七八个小时,但还是挺充实的。不管时间够不够,反正先学起来。加油

查看图片

点赞 评论 收藏
分享

点赞 评论 收藏
分享
点赞 评论 收藏
分享