📅  最后修改于: 2023-12-03 15:12:46.293000             🧑  作者: Mango
本题目为“门|门 IT 2005”年的第51题,题目要求实现一个算法,输入一个字符串,将其中的大写字母转换为小写字母,将其中的小写字母转换为大写字母,其他字符不变,并输出转换后的字符串。
为了实现本题目的要求,我们需要遍历输入字符串的每一个字符,并判断字符的 ASCII 码值是否在指定范围内。具体做法如下:
遍历字符串,对于每一个字符 c,判断它的 ASCII 码值是否在 65-90 或 97-122 这两个范围内。
如果 c 的 ASCII 码值在 65-90 或 97-122 范围内,表示该字符为字母,需要进行大小写转换。
如果 c 的 ASCII 码值不在 65-90 或 97-122 范围内,表示该字符为特殊字符,不需要进行转换。
将转换后的字符拼接起来,即得到最终的结果。
下面是一个 Python 版本的实现示例:
def swap_case(s: str) -> str:
res = ""
for c in s:
if 65 <= ord(c) <= 90:
res += c.lower()
elif 97 <= ord(c) <= 122:
res += c.upper()
else:
res += c
return res
下面是一些测试样例,可以用来验证上述代码的正确性:
assert swap_case("abcdEFgH") == "ABCDefGh"
assert swap_case("aBcDeFgH") == "AbCdEfGh"
assert swap_case("123#$%") == "123#$%"
assert swap_case("") == ""