📜  门|门 IT 2005 |第 51 题(1)

📅  最后修改于: 2023-12-03 15:12:46.293000             🧑  作者: Mango

题目描述

本题目为“门|门 IT 2005”年的第51题,题目要求实现一个算法,输入一个字符串,将其中的大写字母转换为小写字母,将其中的小写字母转换为大写字母,其他字符不变,并输出转换后的字符串。

思路分析

为了实现本题目的要求,我们需要遍历输入字符串的每一个字符,并判断字符的 ASCII 码值是否在指定范围内。具体做法如下:

  1. 遍历字符串,对于每一个字符 c,判断它的 ASCII 码值是否在 65-90 或 97-122 这两个范围内。

  2. 如果 c 的 ASCII 码值在 65-90 或 97-122 范围内,表示该字符为字母,需要进行大小写转换。

  3. 如果 c 的 ASCII 码值不在 65-90 或 97-122 范围内,表示该字符为特殊字符,不需要进行转换。

  4. 将转换后的字符拼接起来,即得到最终的结果。

代码实现

下面是一个 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("") == ""