[刷题]算法竞赛入门经典(第2版) 5-11/UVa12504 - Updating a Dictionary

题意:对比新老字典的区别:内容多了、少了还是修改了。


代码:(Accepted,0.000s)

//UVa12504 - Updating a Dictionary
//#define _XieNaoban_
#include<iostream>
#include<sstream>
#include<string>
#include<vector>
#include<map>
using namespace std;

int T;
int main()
{
#ifdef _XieNaoban_
    freopen("in.txt", "r", stdin);
#endif
    ios::sync_with_stdio(false);
    cin >> T;
    cin.ignore();
    while (T--) {
        map<string, string> dic;
        for (int i(0);i < 2;++i) {
            string line, key, value;
            getline(cin, line);
            for (auto &r : line)
                if (r == ',' || r == ':' || r == '{' || r == '}') r = ' ';
            istringstream in(line);
            while (in >> key) {
                in >> value;
                if (i) {
                    auto d(dic.find(key));
                    if (d != dic.end()) {
                        if (d->second != value) d->second = "*";//changed
                        else d->second = '&';//not changed
                    }
                    else dic[key] = "+";//increased
                }
                else dic[key] = value;
            }
        }
        vector<string> inc, rmv, chg;
        for (const auto& r : dic)
            switch (r.second[0])
            {
            case '+': inc.push_back(r.first);break;
            case '*': chg.push_back(r.first);break;
            case '&': break;
            default:  rmv.push_back(r.first);break;
            }
        if (inc.empty() && rmv.empty() && chg.empty())
            cout << "No changes\n";
        else {
            if (!inc.empty()) {
                cout << '+' << inc[0];
                for (auto i(inc.begin() + 1);i != inc.end();++i)
                    cout << ',' << *i;
                cout << '\n';
            }
            if (!rmv.empty()) {
                cout << '-' << rmv[0];
                for (auto i(rmv.begin() + 1);i != rmv.end();++i)
                    cout << ',' << *i;
                cout << '\n';
            }
            if (!chg.empty()) {
                cout << '*' << chg[0];
                for (auto i(chg.begin() + 1);i != chg.end();++i)
                    cout << ',' << *i;
                cout << '\n';
            }
        }
        cout << '\n';
    }
    return 0;
}

分析:这题很水,轻松AC,没啥好说的。

根据提供的引用内容,问题描述的是在CentOS部署MySQL 5.7时遇到了"The server quit without updating PID file"的错误。下面是解决该问题的步骤: 1. 检查MySQL日志文件:首先,你可以查看MySQL的错误日志文件,该文件通常位于`/var/log/mysql/error.log`或`/var/log/mysqld.log`。使用以下命令查看日志文件的内容: ```shell cat /var/log/mysql/error.log ``` 或 ```shell cat /var/log/mysqld.log ``` 这将显示MySQL的错误日志,你可以查看其中的详细错误信息,以便更好地理解问题的原因。 2. 检查PID文件路径:检查MySQL配置文件中的PID文件路径是否正确。根据提供的引用,MySQL的配置文件位于`/etc/my.cnf`,你可以使用以下命令查看该文件的内容: ```shell cat /etc/my.cnf ``` 在配置文件中找到`pid-file`参数,确保其值与实际的PID文件路径一致。如果路径不正确,你可以手动更改配置文件中的`pid-file`参数,然后重启MySQL服务。 3. 检查PID文件权限:确保MySQL的PID文件具有正确的权限。使用以下命令检查PID文件的权限: ```shell ls -l /mnt/mysql-8.2.0/mysql-8.2.0.pid ``` 确保MySQL用户(通常是`mysql`或`mysqld`)具有对PID文件的读写权限。如果权限不正确,你可以使用以下命令更改PID文件的权限: ```shell chmod 644 /mnt/mysql-8.2.0/mysql-8.2.0.pid ``` 4. 检查数据目录权限:确保MySQL的数据目录具有正确的权限。使用以下命令检查数据目录的权限: ```shell ls -ld /data/mysql/ ``` 确保MySQL用户具有对数据目录的读写权限。如果权限不正确,你可以使用以下命令更改数据目录的权限: ```shell chmod -R 755 /data/mysql/ chown -R mysql:mysql /data/mysql/ ``` 5. 重启MySQL服务:完成上述步骤后,你可以尝试重新启动MySQL服务,使用以下命令: ```shell systemctl restart mysqld ``` 请注意,以上步骤是根据提供的引用内容给出的一般解决方案。具体的解决方法可能因系统配置和环境而有所不同。如果问题仍然存在,请提供更多的错误信息和日志内容以便进一步排查。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值