百度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);
        }
```
全部评论

相关推荐

牛客339922477号:都不用reverse,直接-1。一行。啥送分题
点赞 评论 收藏
分享
10-13 17:47
门头沟学院 Java
wulala.god:图一那个善我面过,老板网上找的题库面的
点赞 评论 收藏
分享
昨天 13:08
蚌埠坦克学院 C++
服从性笔试吗,发这么多笔,现在还在发。
蟑螂恶霸zZ:傻 x 公司,发两次笔试,两次部门匹配挂,
投递金山WPS等公司10个岗位 >
点赞 评论 收藏
分享
2 1 评论
分享
牛客网
牛客企业服务