一、题目链接
http://noi.openjudge.cn/ch0107/22/
二、解题思路(Java)
三、解题思路(C++)
四、Java程序
import java.util.Arrays;
import java.util.Scanner;
import static java.lang.Character.*;
public class Main {
public int[] updatePassword(String[] uname, String[] pwd,
String[] email, String EMAIL) {
int n = uname.length;
int[] ans = new int[n];
int updated = 0;
char[] chars;
for (int i = 0; i < n; i++) {
if (email[i].equals(EMAIL)) {
ans[updated] = i;
updated++;
chars = pwd[i].toCharArray();
for (int j = 0; j < chars.length; j++) {
if (isUpperCase(chars[j])) {
chars[j] = toLowerCase(chars[j]);
}
else if (isLowerCase(chars[j])) {
chars[j] = toUpperCase(chars[j]);
}
}
pwd[i] = String.valueOf(chars);
}
}
if (updated == 0) {
return null;
}
return Arrays.copyOfRange(ans, 0, updated);
}
public static void main(String[] args) {
Main test = new Main();
Scanner input = new Scanner(System.in);
String EMAIL = input.next();
int N = input.nextInt();
String[] uname = new String[N];
String[] pwd = new String[N];
String[] email = new String[N];
int i;
for (i = 0; i < N; i++) {
uname[i] = input.next();
pwd[i] = input.next();
email[i] = input.next();
}
int[] ans = test.updatePassword(uname, pwd, email, EMAIL);
if (ans == null) {
System.out.print("empty");
}
else {
for (i = 0; i < ans.length; i++) {
System.out.println(uname[ans[i]] + " " + pwd[ans[i]]);
}
}
}
}
五、C++程序
#include <iostream>
using namespace std;
int main()
{
string EMAIL;
cin >> EMAIL;
int N;
cin >> N;
int updated = 0;
string user;
string pwd;
string email;
for (int i = 1; i <= N; i++)
{
cin >> user;
cin >> pwd;
cin >> email;
if (email == EMAIL)
{
updated++;
for (int j = 0; j < pwd.length(); j++)
{
if (isupper(pwd[j]))
{
pwd[j] = tolower(pwd[j]);
}
else if (islower(pwd[j]))
{
pwd[j] = toupper(pwd[j]);
}
}
cout << user << " " << pwd << endl;
}
}
if (updated == 0)
{
cout << "empty";
}
return 0;
}