筛选邮箱相同的账号,并用 swapcase 输出修改后的密码。
OJ: noi_openjudge
题目 ID: ch0107-22
难度:入门
标签:字符串模拟筛选python
日期: 2026-07-30 23:01
题意
从账号列表中找出指定邮箱的账号,输出用户名和大小写互换后的密码;没有账号则输出 empty。
思路
逐条比较邮箱。匹配时调用 password.swapcase() 并保存结果,循环后按换行连接;结果列表为空时输出 empty。
代码
Python代码
python
email = input().strip()
account_count = int(input())
accounts = []
for _ in range(account_count):
username, password, account_email = input().split()
if account_email == email:
accounts.append(f"{username} {password.swapcase()}")
print("\n".join(accounts) if accounts else "empty")C++代码
cpp
#include <cstdio>
#include <cstring>
char email[500];
int n;
char str1[500];
char str2[500];
char str3[500];
int main(){
scanf("%s",email);
scanf("%d",&n);
int i,j;
int cnt=0;
for (i=1;i<=n;i++){
scanf("%s",str1);
scanf("%s",str2);
scanf("%s",str3);
if( strcmp(str3,email) == 0){
cnt++;
printf("%s ",str1);
int len = strlen(str2);
for (j=0;j< len;j++){
char c = str2[j];
if( c >='a' && c <='z'){
printf("%c",c+'A'-'a');
}
else if( c >='A' && c <='Z')
printf("%c",c+'a'-'A');
else
printf("%c",c);
}
printf("\n");
}
}
if(!cnt){
printf("empty");
}
return 0;
}复杂度
设所有账号字段长度总和为
总结
筛选记录时先收集,再统一决定空结果与多行输出格式。