• 全部
  • 问答

高分求:“不包含子串abb的由a和b组成的全体符号串”,写出其正规表达式

cbc 2005-03-27 06:20:12
“不包含子串abb的由a和b组成的全体符号串”,写出其正规表达式
...全文
804 点赞 收藏 24
写回复
24 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
SAsura 2005-04-02
b*(a+b?)*
回复
newmeteor 2005-03-31
楼主结贴要有所侧重呀,应该给第一个给出解题思路的,回答得比较完整的多一些。
嘻,给自己做广告。
回复
sagittaquas 2005-03-29
:)
我再废话2句:
b? 就是 b{0,1}
说道思路清楚,呵呵,你可以把2种写法换成判断的具体过程,看一下哪一种需要的规则更少,就是哪种了。思路清楚并不代表就一定是最易懂的:)你的比我的更易懂是真的:)不过,如果从机械的判断过程来看,你那个需要多一个规则:‘刨去最后一位’,而我的没有:)呵呵。
回复
cbc 2005-03-29
to yh801216(艾奥利斯)
这样写,
b*(a|ba)*(b|e)思路比较清楚。
回复
arrowcy 2005-03-29
yh801216(艾奥利斯) 的
b*(a|ba)*b{0,1}这个应该是对的
回复
arrowcy 2005-03-29
不能直接加b
回复
arrowcy 2005-03-29
b*(a|ba)*b?
好像是对的了吧?
回复
sagittaquas 2005-03-28
从程序判断过程上考虑,这种写法也是最正常的。
前面的b*直接越过,出现a也直接越过,出现b就判断其后是不是b就ok了:)
回复
sagittaquas 2005-03-28
哦。那么就没错喽。
对于 arrowcy(长弓手) :b*a*((baa*)*|b) 这个,确实错了,但是不会出现newmeteor(圆缘)说的 a +b+baa ,错在没有包含ab结尾的情况。
对于 cbc(逍遥子) :b*(a*ab)*a* 这个没有错误:)不过楼主不觉得这样写判断麻烦么?

问题分析:去除a出现前的所有b和可能在最后一位出现的b,对于中间部分就是“字符串只能由 'a','ba'两种‘字符’组成”,所以这部分是(a|ba)*。剩下的就很简单了,前面加个b*,后面加个b? 。:)
回复
newmeteor 2005-03-28
对于“(a*ab)*”这种写法,他能代表aabaaab 么?

可以的。
回复
sagittaquas 2005-03-28
对于“(a*ab)*”这种写法,他能代表aabaaab 么?

仔细看看我的:

b*(a|ba)*b?

或者写成b*(a|ba)*b{0,1}
:)
楼主,这应该是你要的解了
回复
cbc 2005-03-28
其实可以这样写的啊
b*(a*ab)*a*
回复
newmeteor 2005-03-28
看看这个,b*(a*ab)*(a*abaa*)*(aa*b)*a*
回复
newmeteor 2005-03-28
连续的b只能在最前面,
回复
cbc 2005-03-28
to newmeteor(圆缘)

那你说正确答案是什么,你的解题思路又是什么呢?
回复
newmeteor 2005-03-28
to arrowcy(长弓手)
这里还有一贴阿?
b*a*((baa*)*|b)
刚才C/C++那边的错了,不知道这个对不?这道题还比较难考虑周全


a +b+baa
显然也不对.
回复
newmeteor 2005-03-28
to cbc(逍遥子)
我写的一个较笨重,你看一下

(aaa|aab|aba|baa|bab|bba|bbb)*

中bab+bba显然也是不对的.
回复
sagittaquas 2005-03-28
呵呵,错了。
b*(a|ba)*b?
回复
sagittaquas 2005-03-28
是不是这么写的?

(a,ba)*
回复
sagittaquas 2005-03-28
hehe,正则我不会写。
意思就是字符串只能由 'a','ba'两种‘字符’组成。:)自己写吧。:)
回复
发帖
数据结构与算法
创建于2007-08-27

3.2w+

社区成员

数据结构与算法相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2005-03-27 06:20
社区公告
暂无公告