哔哩哔哩笔试——04.20

题目

写完回宿舍看《辐射》去了,现在凭着记忆写一下,若有错误请指正。

  1. 给定n个数字,问有多少个连续的子序列(可首尾相连)

  2. 给定字符串,从头到尾依次翻转长度为k的所有子串

    Input:8 5 nowcoder

    Output:odernowc

题解

  1. 直接结论

    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            long n = in.nextLong();
            System.out.println(n * (n - 1) + 1);
        }
    }
    
  2. 模拟

    1. 提前从k-1开始的子串。这是因为在翻转长度为k的子串后,前k个字符将被移动到字符串的末尾。
    2. 然后,若剩余的字符串长度n-k是奇数,则输出打印出前k-1个字符。这是因为在奇数次翻转后,前k-1个字符的顺序将保持不变。
    3. 否则输出前k-1个字符的逆序。这是因为在偶数次翻转后,前k-1个字符的顺序将被反转。
    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            int n = in.nextInt(), k = in.nextInt();
            String s = in.next();
    
            System.out.print(s.substring(k - 1));
            if ((n - k) % 2 == 1) System.out.println(s.substring(0, k - 1));
            else {
                for (int i = 0; i < k - 1; ++i) System.out.print(s.charAt(k - i - 2));
            }
        }
    }
    
#笔试##哔哩哔哩##哔哩哔哩笔试#
全部评论
辐射?辐射老玩家边看边笑,舍友一脸懵逼😂
2 回复 分享
发布于 04-21 13:42 吉林
我觉得今天的哔哩哔哩跟少儿编程一样😂
1 回复 分享
发布于 04-21 00:49 上海
哈哈同辐射玩家
1 回复 分享
发布于 04-22 21:23 安徽
4.28的笔试好像也是这两道题
点赞 回复 分享
发布于 04-29 01:26 四川

相关推荐

手撕没做出来是不是一定挂
Chrispp3:不会,写出来也不一定过
点赞 评论 收藏
分享
10-30 22:18
已编辑
毛坦厂中学 C++
点赞 评论 收藏
分享
评论
6
13
分享
牛客网
牛客企业服务