携程 java实习笔试

四道编程题

感觉除了最后一道题,其它题都比较友好,是我太菜了

第一题

给一个字符串,求字符串中0的个数(6,9,0算一个0;8算两个0)

/**
输入:
1234567890
输出:
5
*/
import java.util.Scanner;

public class Main1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            String s=sc.nextLine();
            if(s.length()==0){
                System.out.println(0);
                break;
            }
            int res=0;
            int index=0;
            while(index<s.length()){
               char temp=s.charAt(index);
                if(temp=='6'||temp=='9'||temp=='0'){
                    res++;
                }else if(temp=='8'){
                    res+=2;
                }
                index++;
            }

            System.out.println(res);
        }
    }
}

第二题

如果一个数ai,它大于前面i个数,则说明他是一个好数,然后题目给n,k。n代表你需要构造一个多长的输出数组,k代表这个输出数组里面有多少个好数,要求好数之前不相邻(多个结果只输出一个结果就行)

/**
输入:
5 2
输出:
4 1 5 2 3 
*/

import java.util.Scanner;

public class Mian2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            int n=sc.nextInt();
            int k=sc.nextInt();

            int maleft=n-k+1;
            StringBuilder res=new StringBuilder();
            int count=0;
            for (int i = 1; count<n; i++) {
                if(maleft<=n){
                    res.append(maleft+" ");
                    maleft++;
                    count++;
                }
                if(count<n){
                    res.append(i+" ");
                    count++;
                }
            }
            res.substring(0,res.length()-1);
            System.out.println(res.toString());
        }
    }
}

第三题

给一个正整数n(1<=n<=109),要求求出正整数x,y,使得 |x!*y-y-n| 最小。x,y不能为2。

(我的代码只通过了70%,就不贴在这里了)

/**
输入:
44
输出:
3 9
*/

第四题

我当时没有思路,所以一点没做,题目也忘了。题目大致就是给了一个树形结构的数据,第一行n代表后面有n行,n行中,每一行,第一个数字代表当前节点,第二个数字代表父节点,第三个数字代表子节点到父节点的权重,要求不存在两条红边交于同一个节点。输出红边最高权重和

/**
输入:
5
2 1 2
1 5 5
3 5 3
4 5 4
5 0 0
输出:
6
*/

全部评论
春招也是这套题
1 回复 分享
发布于 2023-03-30 19:56 江苏
第四题应该类似树型打家劫舍
点赞 回复 分享
发布于 2023-03-29 21:55 湖北

相关推荐

10 29 评论
分享
牛客网
牛客企业服务