题解:P11019 「LAOI-6」[太阳]] 请使用最新版手机 QQ 体验新功能

· · 题解

前置知识

你需要了解基本字符串操作。

思路讲解

通过读题和观察样例可知,我们需要找到被 [] 包裹的字符串,并提取所有大写字母,转为小写后输出。

那么如何找到被包裹的字符串呢?我们考虑遍历字符串,如果当前字符是大写,就转小写并加入答案,如果是 ],就退出遍历。

代码展示

此处提供两种语言的题解,首先是 C++ 版本:

#include <bits/stdc++.h>

using namespace std;

int main(){
    string s; // 定义字符串
    cin >> s; // 读入

    string ans="/"; // 准备好存答案的字符串

    for(int i=1;i<s.length();i++){ // 遍历,注意可以直接跳过首个字符,即 [
        if(s[i]==']'){
            break; // 退出遍历
        }else if('A'<=s[i] && s[i]<='Z'){ // 如果是大写
            ans += s[i]-'A'+'a'; // 转小写存到答案
        }
    }

    cout << ans; // 输出答案

    return 0; // 完结撒花!
}

接下来,我们考虑使用 Python,注意遍历时要将字符串转换为列表:

s=input().split(']')[0] # 分割

print('/',end='') # 输出 /
for i in list(s): # 转为列表并遍历
    if i.isupper(): # 是大写
        print(i.lower(),end='') # 转小写后输出

这样这道题就写完了,祝你好运。