顺丰笔试 顺丰笔试题 0829
笔试时间:2024年08月29日 秋招
历史笔试传送门:2023秋招笔试合集
第一题
题目
小明在编程中在函数名和变量名中使用以下两种命名方法:小驼峰命名法:除第一个单词外,其余单词首字母大写,例如:newFunc, myVariable, myFirstName。下划线命名法:所有单词均小写,并且用一个下划线连接,例如:new_func, my_variable, my_first_name。现在小明列出了他部分代码中的所有函数名,他想知道这些函数名是否是下划线命名法,由于编程时可能存在的错误,有些函数名可能是下划线命名法,也不是下划线命名法。现在他将他的函数名使用的是小驼峰命名法还是下划线命名法输出;如果是下划线命名法,直接输出;若都是不是,则输出“indistinct”。1 ≤ n ≤ 400。
输入描述
第一行是一个整数n,表示有n个函数名。
接下来n行,每行一个字符串,保证每个字符串只包含小写字母和下划线,字符串长度均不超过30。
输出描述
输出n行,第i行表示按照问题描述中对输入中的第i个函数名的判断结果。
样例输入
6
MyLastName
sampleFunc
inputSampleTestTwo
indistinct_Sample
another__sample
another_sample_
样例输出
indistinct
sample_func
input_sample_test_two
indistinct
indistinct
indistinct
参考题解
模拟。
C++:[此代码未进行大量数据的测试,仅供参考]
#include <iostream> #include <string> #include <cctype> using namespace std; bool isaA(const string& str) { if (str.empty() || !islower(str[0])) return false; for (char c : str) { if (c == '_') return false; } return true; } bool is_a(const string& str) { if (str.empty() || str[0] =='_') return false; if (str.find("__") != string::npos) return false; for(int i = 0; i < str.size(); i ++) { if(isupper(str[i])) return false; if(str[i] == '_' && i + 1 >= str.size()) return false; } return true; } string aAto_a(const string& str) { string result; for (char c : str) { if (isupper(c)) { result += '_'; result += tolower(c); } else { result += c; } } return result; } int main() { int n; cin >> n; for (int i = 0; i < n; ++i) { string str; cin >> str; if (isaA(str)) { cout << aAto_a(str) << endl; } else if (is_a(str)) { cout << str << endl; } else { cout << "indistinct" << endl; } } return 0; }
Java:[此代码未进行大量数据的测试,仅供参考]
import java.util.Scanner; public class Main { // 判断字符串是否为驼峰命名法 (camelCase) public static boolean isaA(String str) { if (str.isEmpty() || !Character.isLowerCase(str.charAt(0))) return false; for (char c : str.toCharArray()) { if (c == '_') return false; } return true; } // 判断字符串是否为下划线命名法 (snake_case) public static boolean is_a(String str) { if (str.isEmpty() || str.charAt(0) == '_') return false; if (str.contains("__")) return false; for (int i = 0; i < str.length(); i++) { if (Character.isUpperCase(str.charAt(i))) return false; if (str.charAt(i) == '_' && i + 1 >= str.length()) return false; } return true; } // 将驼峰命名法 (camelCase) 转换为下划线命名法 (snake_case) public static String aAto_a(String str) { StringBuilder result = new StringBuilder(); for (char c : str.toCharArray()) { if (Character.isUpperCase(c)) { result.append('_'); result.append(Character.toLowerCase(c)); } else { result.append(c); } } return result.toString(); } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
持续收录字节、腾讯、阿里、美团、美团、拼多多、华为等笔试题解,包含python、C++、Java多种语言版本,持续更新中。