笔试时间:2023年7月15日 非凡计划  第一题  题目:小y删数字  给定一个长度为n的数组,数组元素为a1, a2, . . , an,每次能删除任意a的任意一位,求将所有数字变成0最少需要几步。例如103若删除第1位则变成3;若删除第2位则变成13;若删除第3位则变成10。  输入描述  第一行一个正整数n代表数组长度。接下来一行n个数第j个数代表a。  1≤n ≤10^5 0≤ai≤10^9  输出描述  输出一行一个数代表答案。  样例输入     5   10 13 22 100 30    样例输出     7    参考题解  遍历nums中的每个数字,得到不为0的数位即可。  Java:  import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息public class Main {    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        int n = sc.nextInt();        int[] nums = new int[n];        for (int i = 0; i < n; i++) {            nums[i] = sc.nextInt();        }                int cnt = 0;        for (int num : nums) {            while (num > 0) {                if (num % 10 != 0) cnt++;                num /= 10;            }        }        System.out.println(cnt);    }}  第二题  题目:小红的字符串切割  小红拿到了一个字符串,她希望你帮她切割成若干子串,满足以下两个条件:  1、子串长度均为不小于3的奇数。  2、子串内部的字符全部相同。  输入描述  第一行输入一个正整数n,代表字符串长度。第二行输入一个字符串,仅由小写字母组成。1 <n ≤200000  输出描述  如果无解,请输出-1。否则按顺序输出若干个字符串,用空格隔开。  样例输入     8   aaabbbbb    样例输出     aaa bbbbb    参考题解  Java:  import java.util.*;// 注意类名必须为 Main, 不要有任何 package xxx 信息public class Main {    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        int n = sc.nextInt();        sc.nextLine();        char[] cs = sc.nextLine().toCharArray();        // 记录每个相同字符的子串的字符数量        List<String> list = new LinkedList<>();        char pre = '.';        StringBuilder sb = new StringBuilder();        for (int i = 0; i < cs.length; i++) {            if (pre == '.' || cs[i] == pre) {                pre = cs[i];                sb.append(cs[i]);            }            else {                list.add(sb.toString());                sb = new StringBuilder();                pre =
点赞 0
评论 0
全部评论

相关推荐

点赞 评论 收藏
分享
05-14 20:34
门头沟学院 Java
窝补药贝八股:管他们,乱说,反正又不去,直接说680
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务