模拟题刷题3

总结

stoi不能转char

栈模拟

时间显示保留前导0:printf("%02d:%02d", hour, second);

236A

简单

cpp 复制代码
void solve()
{
    unordered_map<char, int> map;
    string t;
    cin >> t;
    for (char c : t)
    {
        map[c]++;
    }
    if (map.size() % 2)
    {
        cout << "IGNORE HIM!";
    }
    else
    {
        cout << "CHAT WITH HER!";
    }
}

339A

注意stoi不能转char

cpp 复制代码
void solve()
{
    string t;
    cin >> t;
    vector<int> s;
    for (char c : t)
    {
        if (c != '+')
        {
            s.push_back(c - '0');
        }
    }
    sort(s.begin(), s.end());
    string ans = "";
    for (int n : s)
    {
        ans += to_string(n);
        ans += '+';
    }
    ans.pop_back();
    cout << ans;
}

281A

简单

cpp 复制代码
void solve()
{
    string t;
    cin >> t;
    if (t[0] >= 'a' && t[0] <= 'z')
    {
        t[0] = t[0] - 'a' + 'A';
    }
    cout << t;
}

791A

简单

cpp 复制代码
void solve()
{
    int a, b;
    cin >> a >> b;
    int ans = 0;
    while (a <= b)
    {
        ans++;
        a *= 3;
        b *= 2;
    }
    cout << ans;
}

266A

栈模拟

cpp 复制代码
void solve()
{
    int n;
    cin >> n;
    string s;
    cin >> s;
    stack<char> stk;
    for (char c : s)
    {
        if (!stk.empty() && stk.top() == c)
        {
            continue;
        }
        else
        {
            stk.push(c);
        }
    }
    cout << n - stk.size();
}

546A

简单

cpp 复制代码
void solve()
{
    int k, n, w;
    cin >> k >> n >> w;
    int sum = 0;
    for (int i = 1; i <= w; i++)
    {
        sum += i * k;
    }
    sum -= n;
    cout << max(sum, 0);
}

1133A

时间显示保留前导0:printf("%02d:%02d", hour, second);

cpp 复制代码
void solve()
{
    string a, b;
    cin >> a >> b;
    int x = stoi(a.substr(0, 2)) * 60 + stoi(a.substr(3, 2));
    int y = stoi(b.substr(0, 2)) * 60 + stoi(b.substr(3, 2));
    int time = (y - x) / 2;
    int hour = stoi(a.substr(0, 2)) + time / 60;
    time %= 60;
    int second = stoi(a.substr(3, 2)) + time;
    if (second >= 60)
    {
        int k = second / 60;
        hour += k;
        second = second - k * 60;
    }
    printf("%02d:%02d", hour, second);
}

441A

注意读完数据,没有读完就break会导致本次读入上一次的数据

cpp 复制代码
void solve()
{
    vector<int> ans;
    int n, v;
    cin >> n >> v;
    for (int i = 1; i <= n; ++i)
    {
        int k;
        cin >> k;
        bool ok = false;
        for (int j = 0; j < k; ++j)
        {
            int t;
            cin >> t;
            if (t < v)
                ok = true; // 只标记,不 break
        }
        if (ok)
            ans.push_back(i);
    }
    cout << ans.size() << endl;
    for (int i = 0; i < ans.size(); i++)
    {
        cout << ans[i] << " ";
    }
}
相关推荐
aaaameliaaa5 小时前
字符函数和字符串函数
c语言·笔记·算法
圆山猫5 小时前
[Virtualization](四):Linux KVM/RISC-V 的 vCPU 运行路径
java·linux·risc-v
城管不管6 小时前
ReAct、Plan-and-Execute、Reflection 三大智能 Agent 范式核心区别
java·人工智能·算法·spring·ai·动态规划
IT小白杨6 小时前
从环境制备到自动化工作流:多账号运营的工程化架构拆解
java·经验分享·自动化·安全架构·指纹浏览器
月疯6 小时前
二分法算法(水平等分图形面积)
算法
豆瓣鸡7 小时前
算法日记 - Day3
java·开发语言·算法
白白白小纯7 小时前
算法篇—反转链表
c语言·数据结构·算法·leetcode
萧瑟余晖7 小时前
Java深入解析篇九之NIO详解
java·网络·nio
Achou.Wang7 小时前
深入理解go语言-第5章 并发编程——Go的灵魂
大数据·算法·golang
The Chosen One9857 小时前
高进度算法模板速记(待完善)
java·前端·算法