华为OD机试 - 特殊的加密算法(Java & JS & Python & C & C++)
题目描述:
给定一个字符串,请设计一个算法,将字符串中的所有空格替换成 "%20" 。
解决方案:
- Java 解法:
public class Solution {
public String replaceSpaces(StringBuffer str) {
return str.toString().replace(" ", "%20");
}
}
- JavaScript 解法:
function replaceSpaces(str) {
return str.replace(/ /g, '%20');
}
- Python 解法:
class Solution:
def replaceSpaces(self , S: str) -> str:
return S.replace(' ', '%20')
- C 解法:
#include <stdio.h>
#include <string.h>
void replaceSpaces(char str[]) {
int i, j, len = strlen(str);
for (i = j = 0; i < len; i++) {
if (str[i] == ' ') {
str[j++] = '%';
str[j++] = '2';
str[j++] = '0';
} else {
str[j++] = str[i];
}
}
str[j] = '\0'; // 不要忘记添加结束符
}
int main() {
char str[] = "Hello World!";
replaceSpaces(str);
printf("%s", str);
return 0;
}
- C++ 解法:
#include <iostream>
#include <string>
#include <algorithm>
std::string replaceSpaces(std::string str) {
std::replace(str.begin(), str.end(), ' ', '%20');
return str;
}
int main() {
std::string str = "Hello World!";
std::string replacedStr = replaceSpaces(str);
std::cout << replacedStr;
return 0;
}
以上代码提供了不同语言的实现方法,主要使用了字符串替换的方法。对于 Java 和 JavaScript,使用了 String 类的 replace 方法;对于 Python,使用了 str 的 replace 方法;对于 C 和 C++,使用了标准库中的算法 replace。
评论已关闭