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

pur*_*doo 1 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 +).

unu*_*tbu 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'
Run Code Online (Sandbox Code Playgroud)

参考文献: