求大神帮看个C++题

杭电3788小弟看了好久没看懂题意,求大神给说说题意就好,他给的最后那两种清空为什么是wronganswer谢谢... 杭电 3788
小弟看了好久没看懂题意,求大神给说说题意就好,他给的最后那两种清空为什么是wrong answer
谢谢
展开
 我来答
风若远去何人留
2013-08-12 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450104
专业C/C++软件开发

向TA提问 私信TA
展开全部
感觉这个是个语文题 疯狂
我的理解(不知道对不对,我也没做过)
三条是依次来的
1. 首先zoj是ac的 这个最简单 就是死的
2. 第二条,凡是xzojx的都可以ac 其中x可以是N个'o' 或者为空;
这个要注意的是前后都是x 所以符合这一条的ac字符串,前后的o的个数一定得相同
如果不同的话,比如oozojo就不符合这一条
其实这一条包含了第一条,也就是o的个数为0的情况就是单纯的zoj了
3. 这个在第二条基础上扩展
azbjc是前提 如果把2中的看成一个集合,同时符合3的也看成一个集合,那么azbjc必须是2或3中的一个元素。
在此基础上azbojac也是ac的
azbjc=>azbojac
做的改变 azb不变加一个o,j不变,加一个a,结尾c不变

而abc同样只能由o组成
这样综合起来,可以ac的有几个特点
首先必须包含zoj三个字符,三个都得有 缺一不可。而起z j 两种有且只能有一次
其次如果要符合第二条,那么zj中间有且只有一个o z前和j后的o的个数相同
第三,如果要符合第三条,这个比较麻烦一些,可以找一下规律
符合第二条的中间zj中间有且只有一个o 那么计算zj之间o的个数oi_in_zj-1就是做过2->3扩展的次数(每次增加一个o),j后面是增加过oi_in_zj-1次数a之后得到的, 所以应该有o_after_j=(oi_in_zj - 1) * o_before_z + o_before_z(这里加上了一个,因为最原始的会是一个azoja形式)
即o_after_j=oi_in_zj * o_before_z (o_before_z>=0, oi_in_zj >0)
这个应该就是最终的公式了 符合这一条的都AC 其他的WA
来自:求助得到的回答
王小纯的杯具
2013-08-12
知道答主
回答量:5
采纳率:0%
帮助的人:6761
展开全部
对给定的字符串(只包含'z','o','j'三种字符),判断他是否能AC。

是否AC的规则如下:
1. zoj能AC;
2.
若字符串形式为xzojx,则也能AC,其中x可以是N个'o' 或者为空;
3. 若azbjc
能AC,则azbojac也能AC,其中a,b,c为N个'o'或者为空;

一个字符串中有z,z后面只能是一个或多个o,并且oj要一起出现,oj前没有或有一个以上的o。这样的字符串都能AC
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式