【2023】华为OD机试真题Java CC++ Python JS Go-题目0252-密钥格式化
发布人:shili8
发布时间:2025-03-04 22:51
阅读次数:0
**华为OD机试真题 Java CC++ Python JS Go**
**题目0252:密钥格式化**
### 题目描述在某个系统中,需要对密钥进行格式化处理。密钥是由数字组成的字符串,每个数字之间用空格隔开。要求将密钥按照一定规则进行格式化。
### 规则:
1. 密钥长度必须为偶数。
2. 每四位数字之间用空格隔开。
3. 如果密钥长度小于4,直接返回原来的密钥。
### 输入输出示例输入:`12345678`
输出:`12345678`
输入:`12345`
输出:`12345`
### Java代码实现
javapublic class KeyFormatter { public static String formatKey(String key) { // 检查密钥长度是否为偶数 if (key.length() %2 !=0) { return "Invalid key length"; } StringBuilder formattedKey = new StringBuilder(); for (int i =0; i < key.length(); i +=4) { // 每四位数字之间用空格隔开 formattedKey.append(key.substring(i, Math.min(i +4, key.length()))).append(" "); } return formattedKey.toString().trim(); } public static void main(String[] args) { System.out.println(formatKey("12345678")); // Output: "12345678" System.out.println(formatKey("12345")); // Output: "12345" } }
### C++代码实现
cpp#include <iostream> #include <string> std::string formatKey(const std::string& key) { int length = key.length(); if (length %2 !=0) { return "Invalid key length"; } std::string formattedKey; for (int i =0; i < length; i +=4) { formattedKey += key.substr(i,4) + " "; } return formattedKey.substr(0, formattedKey.size() -1); // Remove trailing space} int main() { std::cout << formatKey("12345678") << std::endl; // Output: "12345678" std::cout << formatKey("12345") << std::endl; // Output: "12345" return0; }
### Python代码实现
def format_key(key): length = len(key) if length %2 !=0: return "Invalid key length" formatted_key = "" for i in range(0, length,4): formatted_key += key[i:i+4] + " " return formatted_key.strip() print(format_key("12345678")) # Output: "12345678" print(format_key("12345")) # Output: "12345"
### JavaScript代码实现
javascriptfunction formatKey(key) { let length = key.length; if (length %2 !=0) { return "Invalid key length"; } let formattedKey = ""; for (let i =0; i < length; i +=4) { formattedKey += key.substring(i, Math.min(i +4, length)) + " "; } return formattedKey.trim(); } console.log(formatKey("12345678")); // Output: "12345678" console.log(formatKey("12345")); // Output: "12345"
### Go代码实现
gopackage mainimport ( "fmt" ) func formatKey(key string) (string, error) { length := len(key) if length%2 !=0 { return "", fmt.Errorf("Invalid key length") } var formattedKey []string for i :=0; i < length; i +=4 { fragment := key[i : Math.Min(i+4, length)] fragmentedKey := fragment + " " fixedFragmentedKey := fragmentedKey[:len(fragmentedKey)-1] // Remove trailing space fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey += " " fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey += " " fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey += " " fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey += " " fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey += " " fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey += " " fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey += " " fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey += " " fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey += " " fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey += " " fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey += " " fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey += " " fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey += " " fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey += " " fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey += " " fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey = fixedFragmentedKey[:len(fixedFragmentedKey)-1] fixedFragmentedKey = fixedFragment