高分求:“不包含子串abb的由a和b组成的全体符号串”,写出其正规表达式
“不包含子串abb的由a和b组成的全体符号串”,写出其正规表达式
“不包含子串abb的由a和b组成的全体符号串”,写出其正规表达式
这里还有一贴阿?
b*a*((baa*)*|b)
刚才C/C++那边的错了,不知道这个对不?这道题还比较难考虑周全
b*(aa*b)*a* ,这个可以吗?
我写的一个较笨重,你看一下
(aaa|aab|aba|baa|bab|bba|bbb)*
呵呵 楼上是不是正在学编译啊
hehe,正则我不会写。
意思就是字符串只能由 'a','ba'两种‘字符’组成。:)自己写吧。:)
是不是这么写的?
(a,ba)*
呵呵,错了。
b*(a|ba)*b?
to cbc(逍遥子)
我写的一个较笨重,你看一下
(aaa|aab|aba|baa|bab|bba|bbb)*
中bab+bba显然也是不对的.
to arrowcy(长弓手)
这里还有一贴阿?
b*a*((baa*)*|b)
刚才C/C++那边的错了,不知道这个对不?这道题还比较难考虑周全
a +b+baa
显然也不对.
to newmeteor(圆缘)
那你说正确答案是什么,你的解题思路又是什么呢?
连续的b只能在最前面,
看看这个,b*(a*ab)*(a*abaa*)*(aa*b)*a*
其实可以这样写的啊
b*(a*ab)*a*
对于“(a*ab)*”这种写法,他能代表aabaaab 么?
仔细看看我的:
b*(a|ba)*b?
或者写成b*(a|ba)*b{0,1}
:)
楼主,这应该是你要的解了
对于“(a*ab)*”这种写法,他能代表aabaaab 么?
可以的。
哦。那么就没错喽。
对于 arrowcy(长弓手) :b*a*((baa*)*|b) 这个,确实错了,但是不会出现newmeteor(圆缘)说的 a +b+baa ,错在没有包含ab结尾的情况。
对于 cbc(逍遥子) :b*(a*ab)*a* 这个没有错误:)不过楼主不觉得这样写判断麻烦么?
问题分析:去除a出现前的所有b和可能在最后一位出现的b,对于中间部分就是“字符串只能由 'a','ba'两种‘字符’组成”,所以这部分是(a|ba)*。剩下的就很简单了,前面加个b*,后面加个b? 。:)
从程序判断过程上考虑,这种写法也是最正常的。
前面的b*直接越过,出现a也直接越过,出现b就判断其后是不是b就ok了:)
b*(a|ba)*b?
好像是对的了吧?
不能直接加b
yh801216(艾奥利斯) 的
b*(a|ba)*b{0,1}这个应该是对的
to yh801216(艾奥利斯)
这样写,
b*(a|ba)*(b|e)思路比较清楚。
:)
我再废话2句:
b? 就是 b{0,1}
说道思路清楚,呵呵,你可以把2种写法换成判断的具体过程,看一下哪一种需要的规则更少,就是哪种了。思路清楚并不代表就一定是最易懂的:)你的比我的更易懂是真的:)不过,如果从机械的判断过程来看,你那个需要多一个规则:‘刨去最后一位’,而我的没有:)呵呵。
楼主结贴要有所侧重呀,应该给第一个给出解题思路的,回答得比较完整的多一些。
嘻,给自己做广告。
b*(a+b?)*