• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

isomer

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

B. Swap and Delete

B. Swap and Delete
想到了用1和0的数量判断交换几次后再之后全部删除,
但是想到二重暴力会超时。
看了题解才发现可以用计数判断哪个多一点,多的全部删除

#include <iostream>
#include <string>
using namespace std;



void solve()
{
    string s;
    cin >> s;
    int n = s.size();
    int sum0 = 0, sum1 = 0;
    for (auto i : s)
    {
        if (i == '0') sum0 ++;
        else sum1 ++;
    }
    for (auto i : s)
    {
        if (i == '0') 
        {
            if (sum1) sum1 --;
            else break;
        }
        else 
        {
            if (sum0) sum0 --;
            else break;
        }
    }
    cout << sum1 + sum0 << endl;
}


int main()
{
    int t;
    cin >> t;
    while (t -- )
    {
        solve();
    }
    return 0;
}

posted on 2024-04-22 23:14  isomer莫柒瑜  阅读(22)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3