Sign-up....

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

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

[34 byte] By [msdn] at [2007-8-14 18:48:45]
# 1 Re: 高分求:“不包含子串abb的由a和b组成的全体符号串”,写出其正规表达式

这里还有一贴阿?

b*a*((baa*)*|b)

刚才C/C++那边的错了,不知道这个对不?这道题还比较难考虑周全

arrowcy at 2005-3-27 19:45:06 >
# 2 Re: 高分求:“不包含子串abb的由a和b组成的全体符号串”,写出其正规表达式

b*(aa*b)*a* ,这个可以吗?

cbc at 2005-3-27 20:12:04 >
# 3 Re: 高分求:“不包含子串abb的由a和b组成的全体符号串”,写出其正规表达式

我写的一个较笨重,你看一下

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

cbc at 2005-3-27 20:12:13 >
# 4 Re: 高分求:“不包含子串abb的由a和b组成的全体符号串”,写出其正规表达式

呵呵 楼上是不是正在学编译啊

luopan0021 at 2005-3-27 21:07:20 >
# 5 Re: 高分求:“不包含子串abb的由a和b组成的全体符号串”,写出其正规表达式

hehe,正则我不会写。

意思就是字符串只能由 'a','ba'两种‘字符’组成。:)自己写吧。:)

yh801216 at 2005-3-28 13:56:53 >
# 6 Re: 高分求:“不包含子串abb的由a和b组成的全体符号串”,写出其正规表达式

是不是这么写的?

(a,ba)*

yh801216 at 2005-3-28 13:58:42 >
# 7 Re: 高分求:“不包含子串abb的由a和b组成的全体符号串”,写出其正规表达式

呵呵,错了。

b*(a|ba)*b?

yh801216 at 2005-3-28 14:19:01 >
# 8 Re: 高分求:“不包含子串abb的由a和b组成的全体符号串”,写出其正规表达式

to cbc(逍遥子)

我写的一个较笨重,你看一下

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

中bab+bba显然也是不对的.

newmeteor at 2005-3-28 15:37:52 >
# 9 Re: 高分求:“不包含子串abb的由a和b组成的全体符号串”,写出其正规表达式

to arrowcy(长弓手)

这里还有一贴阿?

b*a*((baa*)*|b)

刚才C/C++那边的错了,不知道这个对不?这道题还比较难考虑周全

a +b+baa

显然也不对.

newmeteor at 2005-3-28 15:42:06 >
# 10 Re: 高分求:“不包含子串abb的由a和b组成的全体符号串”,写出其正规表达式

to newmeteor(圆缘)

那你说正确答案是什么,你的解题思路又是什么呢?

cbc at 2005-3-28 15:50:09 >
# 11 Re: 高分求:“不包含子串abb的由a和b组成的全体符号串”,写出其正规表达式

连续的b只能在最前面,

newmeteor at 2005-3-28 16:06:52 >
# 12 Re: 高分求:“不包含子串abb的由a和b组成的全体符号串”,写出其正规表达式

看看这个,b*(a*ab)*(a*abaa*)*(aa*b)*a*

newmeteor at 2005-3-28 16:07:50 >
# 13 Re: 高分求:“不包含子串abb的由a和b组成的全体符号串”,写出其正规表达式

其实可以这样写的啊

b*(a*ab)*a*

cbc at 2005-3-28 17:12:00 >
# 14 Re: 高分求:“不包含子串abb的由a和b组成的全体符号串”,写出其正规表达式

对于“(a*ab)*”这种写法,他能代表aabaaab 么?

仔细看看我的:

b*(a|ba)*b?

或者写成b*(a|ba)*b{0,1}

:)

楼主,这应该是你要的解了

yh801216 at 2005-3-28 17:51:34 >
# 15 Re: 高分求:“不包含子串abb的由a和b组成的全体符号串”,写出其正规表达式

对于“(a*ab)*”这种写法,他能代表aabaaab 么?

可以的。

newmeteor at 2005-3-28 17:54:22 >
# 16 Re: 高分求:“不包含子串abb的由a和b组成的全体符号串”,写出其正规表达式

哦。那么就没错喽。

对于 arrowcy(长弓手) :b*a*((baa*)*|b) 这个,确实错了,但是不会出现newmeteor(圆缘)说的 a +b+baa ,错在没有包含ab结尾的情况。

对于 cbc(逍遥子) :b*(a*ab)*a* 这个没有错误:)不过楼主不觉得这样写判断麻烦么?

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

yh801216 at 2005-3-28 18:14:43 >
# 17 Re: 高分求:“不包含子串abb的由a和b组成的全体符号串”,写出其正规表达式

从程序判断过程上考虑,这种写法也是最正常的。

前面的b*直接越过,出现a也直接越过,出现b就判断其后是不是b就ok了:)

yh801216 at 2005-3-28 18:18:28 >
# 18 Re: 高分求:“不包含子串abb的由a和b组成的全体符号串”,写出其正规表达式

b*(a|ba)*b?

好像是对的了吧?

arrowcy at 2005-3-29 13:11:02 >
# 19 Re: 高分求:“不包含子串abb的由a和b组成的全体符号串”,写出其正规表达式

不能直接加b

arrowcy at 2005-3-29 13:12:12 >
# 20 Re: 高分求:“不包含子串abb的由a和b组成的全体符号串”,写出其正规表达式

yh801216(艾奥利斯) 的

b*(a|ba)*b{0,1}这个应该是对的

arrowcy at 2005-3-29 13:13:10 >
# 21 Re: 高分求:“不包含子串abb的由a和b组成的全体符号串”,写出其正规表达式

to yh801216(艾奥利斯)

这样写,

b*(a|ba)*(b|e)思路比较清楚。

cbc at 2005-3-29 13:20:04 >
# 22 Re: 高分求:“不包含子串abb的由a和b组成的全体符号串”,写出其正规表达式

:)

我再废话2句:

b? 就是 b{0,1}

说道思路清楚,呵呵,你可以把2种写法换成判断的具体过程,看一下哪一种需要的规则更少,就是哪种了。思路清楚并不代表就一定是最易懂的:)你的比我的更易懂是真的:)不过,如果从机械的判断过程来看,你那个需要多一个规则:‘刨去最后一位’,而我的没有:)呵呵。

yh801216 at 2005-3-29 15:27:39 >
# 23 Re: 高分求:“不包含子串abb的由a和b组成的全体符号串”,写出其正规表达式

楼主结贴要有所侧重呀,应该给第一个给出解题思路的,回答得比较完整的多一些。

嘻,给自己做广告。

newmeteor at 2005-3-31 13:17:18 >
# 24 Re: 高分求:“不包含子串abb的由a和b组成的全体符号串”,写出其正规表达式

b*(a+b?)*

SAsura at 2005-4-2 14:07:37 >

专题开发

All Classified