酷代码 AI
菜单
服务商

c++ 墙上的ASCII码大写字母和小写字母混在一起,混乱不堪,你有办法将大写字母和小写字母分离开,形成两个新的字母串吗? 输入: 共 3 行, 第 1 行是一个正整数n,表示混合字串的总长度。 第 2 行是包含 n 个只包含大小写字母的字符。 第 3 行是和第 2 行完全相同的 n 个字符。 输出: 输出有两行,第一行是筛选后的仅保留了大写字母的字母串,第二行是筛选后的仅保留了小写字母的字母串。字母串内字母之间无需用空格隔开。

以下是实现该功能的 C++ 代码: ```cpp #include <iostream> #include <string> int main() { int n; std::cin >> n; std::string input; std::cin >> input; // 用于存储大写字母和小写字母的字符串 std::string uppercaseLetters = ""; std::string lowercaseLetters = ""; // 遍历输入字符串,分离大写和小写字母 for (int i = 0; i < n; ++i) { if (input[i] >= 'A' && input[i] <= 'Z') { uppercaseLetters += input[i]; } else if (input[i] >= 'a' && input[i] <= 'z') { lowercaseLetters += input[i]; } } // 输出结果 std::cout << uppercaseLetters << std::endl; std::cout << lowercaseLetters << std::endl; return 0; } ``` 代码解释: 1. 输入处理: - 首先读取一个整数 `n`,表示混合字串的总长度。 - 然后读取一个长度为 `n` 的字符串 `input`。 2. 分离大小写字母: - 初始化两个空字符串 `uppercaseLetters` 和 `lowercaseLetters`,分别用于存储大写字母和小写字母。 - 遍历输入字符串 `input`,对于每个字符,检查它是否为大写字母或小写字母。 - 如果是大写字母(ASCII 码在 `'A'` 到 `'Z'` 之间),将其添加到 `uppercaseLetters` 中。 - 如果是小写字母(ASCII 码在 `'a'` 到 `'z'` 之间),将其添加到 `lowercaseLetters` 中。 3. 输出结果: - 输出筛选后的大写字母串和小写字母串。 复杂度分析: - 时间复杂度:$O(n)$,其中 $n$ 是输入字符串的长度。因为只需要遍历一次输入字符串。 - 空间复杂度:$O(n)$,主要用于存储筛选后的大写字母串和小写字母串。 [2025-12-05 19:25:56 | AI问答 | 505点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多