P8824 40 pts 求调
  • 板块灌水区
  • 楼主xiayubin
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/9/29 16:45
  • 上次更新2024/9/29 20:18:53
查看原帖
P8824 40 pts 求调
574326
xiayubin楼主2024/9/29 16:45
#include <bits/stdc++.h>
using namespace std;

vector <string> fs;
int n;

bool check(string name) {
	auto iter_f = find(fs.begin(), fs.end(), name);
	if (iter_f != fs.end()) return true;
	else return false;
}

vector<string>::iterator check_pos(string name) {
	auto iter_f = find(fs.begin(), fs.end(), name);
	return iter_f;
}

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin >> n;
	for (int i = 1; i <= n; i++) {
		string c;
		cin >> c;
		if (c == "touch") {
			string name;
			cin >> name;
			if (!check(name)) fs.push_back(name);
		} else if (c == "rm") {
			string name;
			if (check(name)) fs.erase(check_pos(name));
		} else if (c == "ls") {
			if (fs.empty()) continue;
			for (int i = 0; i < fs.size(); i++) {
				cout << fs[i] << endl;
			}
		} else if (c == "rename") {
			string name_1, name_2;
			cin >> name_1 >> name_2;
			if (check(name_1) && !check(name_2)) {
				for (int i = 0; i < fs.size(); i++) {
					if (fs[i] == name_1) {
						fs[i] = name_2;
						break;
					}
				}
			}
		}
	}
	return 0;
}
2024/9/29 16:45
加载中...