模拟题刷题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] << " ";
    }
}
相关推荐
程序猿乐锅11 分钟前
【黑马点评 | 第十一篇】关注 Feed 流实现
java·数据库·redis·分布式·后端·缓存·maven
longlongzihan17 分钟前
LeetCode 1004.最大连续1的个数III 滑动窗口及动态规划题解
c++·算法·leetcode·dp·滑动窗口
开开心心就好22 分钟前
图片白底怎么去掉?抠图工具抠完背景透明
java·服务器·开发语言·pdf·ocr·散列表·启发式算法
朝朝辞暮i24 分钟前
C++ 第 22 课:const —— 不允许随便修改的数据
开发语言·c++·算法
东方芷兰42 分钟前
Agent 技术摘要 05 —— BP、SaaS、B2B、C2B、B2C
java·笔记·python·语言模型·自然语言处理
Chen—LSN1 小时前
数据结构——拿捏复杂度
java·c语言·开发语言·数据结构·经验分享·笔记·算法
一条破秋裤1 小时前
Linux 线程同步:条件变量
java·linux·jvm
Chen_harmony1 小时前
六、排序详解
c语言·数据结构·算法·排序算法
步行cgn1 小时前
Spring AOP 切面的先后顺序详解
java·spring
-dzk-1 小时前
【贪心算法】LC 55.跳跃游戏
算法·游戏·贪心算法