携程笔试 携程笔试题 1010

笔试时间:2024年10月10日 秋招

历史笔试传送门:2023秋招笔试合集

第一题

题目:游游的驼峰命名

游游以前命名代码,习惯是这样的:union_find, in_out, update_user, update_admin即变量中只使用小写字母以及下划线,两个单词用下划线相连。但是小牛老师教会了他大驼峰法,即每个单词以大写字母开头,并且没有下划线相连,比如将上述的四个变量改成大驼峰法便是:UnionFind, InOut, UpdateUser, UpdateAdmin所以游游现在的首要任务就是将他以前的代码中的变量命名全都改成大驼峰法,请你帮帮他吧。

输入描述

第一行一个正整数T,表示一共有 T 组数据。

接下来T行,每行一个字符串 s表示游游原始的变量名。

输出描述

输出包含 T 行,每行一个字符串 s 表示转化成大驼峰法命名的变量名。

样例输入

2

now_coder

acm_icpc

样例输出

NowCoder

AcmIcpc

参考题解

把第一位和下划线后一位改成大写即可。

C++:[此代码未进行大量数据的测试,仅供参考]

#include <iostream>

#include <cstring>

using namespace std;

char str[105];

int main() {

 int T;
 
 cin>>T;
 
 while (T--)
 
 {
 
  cin>>str;
  
  int n=strlen(str);
  
  printf("%c",str[0]+'A'-'a');
  
  for (int i=1; i<n; i++)
  
  {
  
   if (str[i]=='_')
    printf("%c",str[++i]+'A'-'a');
   else
    printf("%c",str[i]);
  
  }
  
  cout<<endl;
 
 }

}

Java:[此代码未进行大量数据的测试,仅供参考]

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        int T = scanner.nextInt();  // 读取测试用例数量
        scanner.nextLine();  // 读取换行符
        
        while (T-- > 0) {
            String str = scanner.nextLine();
            int n = str.length();
            
            // 输出第一个字符,转换为大写
            System.out.print(Character.toUpperCase(str.charAt(0)));
            
            for (int i = 1; i < n; i++) {
                if (str.charAt(i) == '_') {
                    // 将下划线后的字符转为大写
                    System.out.print(Character.toUpperCase(str.charAt(++i)));
                } else {
                    System.out.print(str.charAt(i));
                }
            }
            
            System.out.println();  // 输出换行
        }

        scanner.close();
    }
}

Python:[此代码未进行大量数据的测试,仅供参考]

T = int(input())  # 读取测试用例数量

for _ in range(T):
    str_input = input()
    n = len(str_input)
    
    # 输出第一个字符,转换为大写
    print(str_input[0].upper(), end='')
    
    i = 1
    while i < n:
        if str_input[i] == '_':
            # 将下划线后的字符转为大写
            i += 1
            print(str_input[i].upper(), end='')
        else:
            print(str_input[i], end='')
        i += 1
    
    print()  # 输出换行

第二题

题目:游游吃糖果

游游现在有n颗糖果。他有一个吃糖果的计划。具体是:如果剩余的糖果数量是素数,那么这天他会吃[n/3]+1颗。否则这天就吃[n/2]+1颗。问他的糖果可以吃几天。[x]表示对向下取整。

输入描述

输入一个整数n,表示游游的糖果数量。

输出描述

输出一个整数,表示游游可以吃的天数。

样例输入

10

样例输出

3

参考题解

模拟,根号复杂度判断素数。

C++:[此代码未进行大量数据的测试,仅供参考]

#include <iostream>

#include <cmath>

using namespace std;

long long n;

int ans=0;

bool isPrime(long long x)

{

 for (int i=2; i<=sqrt(x); i++)
 
  if (x%i==0) return 0;
 
 return 1;

}

int main() {
 
 cin>>n;
 
 while (n>0)
 
 {
 
  ans++;
  
  if (isPrime(n)) n-=n/3+1;
  
  else n-=n/2+1;
 
 }
 
 cout<<ans<<endl;

}

Java:[此代码未进行大量数据的测试,仅供参考]

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        long n = scanner.nextLong();  // 读取 n
        int ans = 0;

        // 判断质数的函数
        boolean isPrime(long x) {
            if (x < 2) return false;
            for (int i = 2; i <= Math.sqrt(x); i++) {
                if (x % i == 0) return false;
            }
            return true;
        }

        // 循环直到 n 为 0
        while (n > 0) {
            ans++;
            if (isPrime(n)) {
                n -= n / 3 + 1;
            } else {
                n -= n / 2 + 1;
            }
        }

        System.out.println(ans);  // 输出结果
        scanner.close();
    }
}

Python:[此代码未进行大量数据的测试,仅供参考]

import math

# 判断质数的函数
def is_prime(x):
    if x < 2:
        return False
    for i in range(2, int(math.

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

2024 BAT笔试合集 文章被收录于专栏

持续收录字节、腾讯、阿里、美团、美团、拼多多、华为等笔试题解,包含python、C++、Java多种语言版本,持续更新中。

全部评论

相关推荐

头像
05-16 12:47
已编辑
中国地质大学(武汉) Java
你出生在农村,与其它农村小孩子无异小学时你对成绩没有概念,只感觉上课不听课也是无聊,只知道不写完作业会被老师罚站一到考试,自己成绩总是名列靠前,即使偶尔落后,你也从不在意中学时你觉得课本的东西很简单,随便学学就会了,并没有大量刷题你总是想不通,那些所谓的数学物理中难题,明明是在送分,为什么你的同学总是想不出解题方法高中时这三年你过的不容易,晚睡早起,给了自己很多压力.但是你也发现自己是有些小聪明的,你感觉班里有些同学很刻苦,但成绩比你差远了。那些数学题和物理题的陷阱,同学一遍遍踩坑,但是你总能发现并避开它们.“为了父母的期盼,为了恩师的厚望,为了天赐的智慧,为了青春的理想......”“天行健...
创作助手_刘北:其实,这种已经是神童级别的了,不费吹灰之力就能拿到自己想要的东西,就像机器按照程序走了一遍,就像我小时候看爱情公寓,觉得他们都很惨,几个人只能挤在一个房间里合租,但是好在他们有一群非常好的朋友,随着时间的推移,慢慢长大了,在看爱情公寓的时候,觉得他们都很厉害,博士、留学生、***、电台公子,数学天才,任何一个都是我可望而不可即的,更别说可以在异地认识一群更好的朋友了,所以呢,人还是要自给自足,满足当下,不要攀比,意气风发的且有理想的18岁少年永远都存在,只不过随着时间的推移他被你包裹在了洋葱的最深处。
点赞 评论 收藏
分享
用户64975461947315:这不很正常吗,2个月开实习证明,这个薪资也还算合理,深圳Java好多150不包吃不包住呢,而且也提前和你说了没有转正机会,现在贼多牛马公司骗你说毕业转正,你辛辛苦苦干了半年拿到毕业证,后面和你说没hc了😂
点赞 评论 收藏
分享
04-08 10:36
已编辑
华南理工大学 C++
点赞 评论 收藏
分享
评论
2
3
分享

创作者周榜

更多
牛客网
牛客企业服务