关注
我没参加这次考试,准备过几天参加,不过看了你的题目描述,我自己做了一下
核心思想就是从第0位开始,如果希望把该位变成0,则对下一位做操作
比如 10101,想把s[0]变成0,则对s[1]做操作,得到 01001,想把s[1]变成0,对s[2]操作,得到00111,想把s[2]变成0。。。。最后判断最后一位是否为0就行了
#include <iostream>
(720)#include <string>
using namespace std;
void _flip(string &s, int i) {
s[i] = s[i] == '039; ? '139; : '039;;
}
void flip(string &s, int i) {
_flip(s, i - 1);
_flip(s, i);
if (i < s.length() - 1) {
_flip(s, i + 1);
}
}
int judge(string s) {
int cnt = 0;
for (int i = 0; i < s.length() - 1; i++) {
if (s[i] == '139;) {
flip(s, i + 1); //为了让当前第i位变成0,对i+1位做翻转操作
cnt++;
}
}
return s.back() == '039; ? cnt : -1;
}
int main() {
int N;
cin >> N;
while (N--) {
string s;
cin >> s;
int ret = judge(s);
if (ret == -1) {
cout << "NO" << endl;
} else {
cout << ret << endl;
}
}
return 0;
}
查看原帖
2 评论
相关推荐
点赞 评论 收藏
分享
01-11 08:47
门头沟学院 Java 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 在大厂上班是一种什么样的体验 #
13121次浏览 175人参与
# 机械人避雷的岗位/公司 #
44461次浏览 312人参与
# 程序员找工作至少要刷多少题? #
22042次浏览 281人参与
# 为了减少AI幻觉,你注入过哪些设定? #
6627次浏览 188人参与
# 论秋招对个人心气的改变 #
14298次浏览 196人参与
# 牛客AI体验站 #
8408次浏览 215人参与
# 你现在会用到哪些AI技能? #
24702次浏览 137人参与
# 找实习多的是你不知道的事 #
1788551次浏览 20670人参与
# 你的mentor是什么样的人? #
51318次浏览 724人参与
# 我现在比当时_,你想录用我吗 #
9738次浏览 132人参与
# 12306一秒售罄,你抢到回家的票了吗? #
2420次浏览 52人参与
# 应届生进小公司有什么影响吗 #
118600次浏览 1161人参与
# 一张图晒一下你的AI员工 #
6012次浏览 131人参与
# 哪一瞬间让你觉得工作好累 #
75632次浏览 431人参与
# AI Coding的使用心得 #
5640次浏览 117人参与
# 父母对你找工作是助力还是阻力? #
38359次浏览 387人参与
# 刚入职的你踩过哪些坑 #
7920次浏览 140人参与
# 25年找工作是什么难度? #
53635次浏览 338人参与
# 晒晒你司的新年福利 #
9433次浏览 125人参与
# 我和mentor的爱恨情仇 #
106429次浏览 951人参与
