【深基6.例1】自动修正

GitHub跳转原题关系图返回列表

直接使用字符串的 upper 方法,把所有小写字母转换成大写后输出。

OJ: luogu

题目 ID: P5733

难度:入门

标签:字符串模拟python

日期: 2026-07-15 20:30

题意

输入一个长度不超过 100、不含空格的字符串。把其中所有小写字母改成大写字母,其他字符保持不变。

思路

Python 字符串自带 upper() 方法,它会把英文字母转成大写,数字、标点等非小写字母不会受到影响。

这题的重点是认识字符串方法,不创建 brute.py

Python 知识

  • /home/rainboy/mycode/hugo-blog/content/program_language/python/input_output_and_strings.mdinput() 读取不含空格的一行字符串。
  • /home/rainboy/mycode/hugo-blog/content/program_language/python/oj_input_output_cheatsheet.md:不含空格的字符串直接用 s = input()
  • s.upper() 返回一个新字符串,原字符串不会被原地修改。

代码

python
s = input()
print(s.upper())
cpp
/**
 * Author by Rainboy blog: https://rainboylv.com github: https://github.com/rainboylvx
 * rbook: -> https://rbook.roj.ac.cn  https://rbook2.roj.ac.cn
 * rainboy的学习导航网站: https://idx.roj.ac.cn
 * create_at: 2026-07-27 00:00
 * update_at: 2026-07-27 00:00
 */

#include <bits/stdc++.h>
using namespace std;

char s[105]; // 输入的字符串

int main() {
    cin >> s;
    int len = strlen(s);
    for (int i = 0; i < len; i++) {
        if (s[i] >= 'a' && s[i] <= 'z')
            s[i] = s[i] - 'a' + 'A'; // 小写转大写
    }
    cout << s;
    return 0;
}

Pythonic 写法

str.upper() 一行完成大小写转换:

python
print(input().upper())

复杂度

设字符串长度为 n,时间复杂度是 O(n)O(n),空间复杂度是 O(n)O(n)

总结

遇到整串大小写转换时,优先使用 Python 字符串方法,比手动逐个字符判断更清楚。