出道题给大家耍下,有闲的各位请接招

2016-02-26 18:01:18 +08:00
 northisland
有这样的输入字符串
“ tt2012g2 ”


求该字符串中,最长的连续数字子串。

语言不限~: P
3090 次点击
所在节点    问与答
21 条回复
scarlex
2016-02-29 22:20:05 +08:00
@myid

Haskell

getNumbers [] = [[]]
getNumbers xs = [ys] ++ getNumbers zs'
____where (ys, ys') = span (\x -> x `elem` ['0'..'9']) xs
__________(zs, zs') = break (\x -> x `elem` ['0'..'9']) ys'

getLongest = (foldr f "") . getNumbers
____where f x y = if (length x > length y) then x else y

不用正则,只用预设函数写出来的版本~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/259360

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX