Python查找没有特定数字的最长数字字符串

时间:2014-09-15 13:38:21

标签: python arrays string python-2.7 python-3.x

很抱歉,标题令人困惑。我正在尝试编写一个python函数,它接受一串数字(数字)作为输入(例如:" 123456789123")。该函数还应该接受一个int n,然后应该返回不包含n的数字字符串的最大段。例如,如果我的数字字符串是1211211121而我的n是2,那么我的函数应该返回" 111"因为它是字符串中没有遇到2的最长段。

Python是我的第一个脚本"语言和我仍在学习如何成功地融入语言所具有的内置功能。我已经为上述问题写了一个解决方案,包括将数字串拆分成一个单独的数字数组,然后遍历每个数字,找到没有n的数字段。然后我比较这些段找到最长的。然而,这门课程的助教告诉我们有更多的" pythonic"解决这个问题的方法,以及我工作时的当前功能可能会明显缩短。

我很难过,有没有人有更多" pythonic"他们可以帮助我的解决方案?提前致谢!

PS:不确定它是否与python解决方案有关,但是我应该提一下,在某些测试用例中,数字串可能会很长(在IIRC时约为1000 +)。

1 个答案:

答案 0 :(得分:5)

In [15]: text = '1211211121'

In [16]: text.split('2')
Out[16]: ['1', '11', '111', '1']

In [18]: max(text.split('2'), key=len)
Out[18]: '111'

参考文献: