网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
02月08日
漏签
0
天
c语言吧
关注:
801,856
贴子:
4,376,169
看贴
图片
吧主推荐
视频
游戏
1
2
下一页
尾页
28
回复贴,共
2
页
,跳到
页
确定
<<返回c语言吧
>0< 加载中...
老哥们求个思路
只看楼主
收藏
回复
粉毛败犬
酱油
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
想了好久真想不出来
贴吧用户_6S5Db389b
酱油
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
用三个flag标记u,z,i
按顺序遍历
如果遇到u flagu置位
如果遇到z 1,if(flagu && !flagz)flagz++
2,if(flagu && flagz) flagz=0 flagu=0
按照这个逻辑写i,应该没啥问题
2026-02-08 19:57:24
广告
不感兴趣
开通SVIP免广告
贴吧用户_6S5Db389b
酱油
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
bool hasUzi(char* s){
int len = strlen(s);
int flagU = 0;
int flagZ = 0;
int flagI = 0;
for(int i = 0;i < len; i++){
if(s[i] == 'u'){
flagU = 1;
flagZ = 0;
flagI = 0;
}
if(s[i] == 'z'){
if(!flagU){
continue;
}
if(flagZ){
flagU = 0;
flagZ = 0;
flagI = 0;
}else{
flagZ = 1;
}
}
if(s[i] == 'i'){
if(!flagU || !flagZ){
flagU = 0;
flagZ = 0;
flagI = 0;
}else{
return true;
}
}
}
return false;
}
Nephino31
毛蛋
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
大概是状态机的思路,3个flag(包括“无”总共4个状态):
检测到u置一个flag(切换状态);
然后再开始检测z,同理再置一个flag;
接着是i,检测到就置flag。
遍历完后看i的flag就行
不吃牛肉?
便当
3
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
滑动窗口
uitstalie
强能力者
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
这不就是状态机嘛,很简单啊,
nutari2013
毛蛋
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
从前向后找,找到u之后,从u后一个的位置开始找z,找到z之后,从之后的一个位置找i,找到i就返回true,哪一个没找到就结束了就返回false
土豆猪壹号
酱油
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
能用string吗?
2026-02-08 19:51:24
广告
不感兴趣
开通SVIP免广告
酮镍
毛蛋
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
设定三个bool变量,o1,o2,o3
从前往后遍历字符串,遇到u则o1等于1,遇到z且o1等于1则o2等于1,遇到i且o2等于1则o3等于一,然后根据o3判断结果。
peanut
异能力者
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
遇到z的时候看看前面有没有u,有就记录一下,遇到i的时候看前面有没有uz,有就直接输出yes
织梦行云
毛蛋
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
直接找第一个u的位置,最后一个i的位置,看中间有没有z
pi31416chan
麻婆豆腐
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
差不多这样?
hahatianx
毛蛋
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
kmp
又被吵醒
毛蛋
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
用指针
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示