关注
我没参加这次考试,准备过几天参加,不过看了你的题目描述,我自己做了一下
核心思想就是从第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 评论
相关推荐
牛客热帖
更多
正在热议
更多
# 你小心翼翼的闯过多大的祸? #
3938次浏览 68人参与
# 找不到实习会影响秋招吗 #
1399795次浏览 13635人参与
# 实习没事做是福还是祸? #
4268次浏览 68人参与
# 重来一次,你会对开始求职的自己说 #
929次浏览 19人参与
# 2025年终总结 #
134366次浏览 2293人参与
# 考研人,我有话说 #
156586次浏览 1211人参与
# 哪些公司笔/面试难度大? #
7067次浏览 32人参与
# 实习简历求拷打 #
24071次浏览 249人参与
# 你觉得现在还能进互联网吗? #
29955次浏览 201人参与
# 携程工作体验 #
18946次浏览 66人参与
# 大厂VS公务员你怎么选 #
69135次浏览 638人参与
# 扒一扒那些奇葩实习经历 #
140172次浏览 1149人参与
# 找不到好工作选择GAP真的丢人吗 #
93693次浏览 1007人参与
# 那些我实习了才知道的事 #
253093次浏览 1785人参与
# 非技术投递记录 #
672921次浏览 6820人参与
# 机械求职避坑tips #
81079次浏览 531人参与
# 投格力的你,拿到offer了吗? #
154940次浏览 829人参与
# 第一份工作能做外包吗? #
94059次浏览 599人参与
# 作业帮求职进展汇总 #
85468次浏览 559人参与
# 秋招遇到的奇葩面试题 #
101257次浏览 416人参与
