【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

