python如何处理中英文混排最长公共前缀问题,,比如:str1 = "我
python如何处理中英文混排最长公共前缀问题,,比如:str1 = "我
比如:
str1 = "我是a good boy" str2 = "我是a bad boy"
两者的公共前缀为:我是a
引自 os.path.commonprefix,参数可以是任意数量的list
def commonprefix(m): if not m: return '' s1 = min(m) s2 = max(m) for i, c in enumerate(s1): if c != s2[i]: return s1[:i] return s1commonprefix(['我是a good boy', '我是a bad boy'])
如果只需要两个字符串,可以简化为
def commonprefix(s1, s2): for i, c in enumerate(s1): if c != s2[i]: return s1[:i] return s1
os.path.commonprefix((str1, str2))
其实我想说,如果楼主强调的是“中英文混排”这件事的话,那么如果两个字符串的同为unicode,或者采用了相同的字节编码方式的话,应该中英文混排这件事其实是没有区别的。
采用unicode时,每个汉字或者每个英文都是一个完整的字符;采用比如utf-8编码时,每个汉字是3个字节,每个英文是一个字节,那么依然不影响前缀的比较
转化為list
def longestprefix(str1, str2): if str1 == str2: return str1 return '' if str1[0] != str2[0] else str1[0] + longestprefix(str1[1:], str2[1:])
Python 3.4 测试可以, 2.x 没尝试
编橙之家文章,
相关内容
- Python web.py图片与css文件访问遇到500错误怎么解决,,使
- 想得到.py向上一层文件路径,python源码应该怎么写,,假
- Python匿名函数返回值输出问题望指点,,该段的匿名函数
- 请问lambda:lambda:0如何理解,请问lambda理解,比如说:f=
- python %r和%s分别在什么情况下使用?,python%r,看代码的时
- 请python高手帮看下Flask数据库配置有什么问题,pythonf
- Python封装exe格式后无法运行是什么原因,pythonexe,使用
- Django网站七牛上传图片遇到出错信息如何捕获,,是这样
- 关于python requests库中session线程安全方面问题的小疑问,
- Python动态语言运行机制是怎么样的,python动态运行机制
评论关闭