每天开心一点

Python: 每日一题 34

2017-11-27 13:19:00    六月    609    来源: http://bbs.fishc.com/thread-86431-1-1.html

给你一个字符串组成列表strarr,给你一个整数k。[del]{啊,strarr-k}[/del]
你的任务是找出由k个字符组成的最长的连续的字符串组合。
例子:
longest_consec(["zone", "abigail", "theta", "form", "libe", "zas", "theta", "abigail"], 2) --> "abigailtheta"
n是列表的长度,如果if n = 0 or k > n or k <= 0 return ""。

  1. 请将以下代码存为test.py用于检验答案。
  2. def assert_equals(func, target, *args):
  3.     if func == target:
  4.         print('Success!')
  5.     else:
  6.         print('Fail!{0} not equals {1}'.format(func, target))
  7.         print(*args)
复制代码


  1. 测试:
  2. test.assert_equals(longest_consec(["zone", "abigail", "theta", "form", "libe", "zas"], 2), "abigailtheta")
  3. test.assert_equals(longest_consec(["ejjjjmmtthh", "zxxuueeg", "aanlljrrrxx", "dqqqaaabbb", "oocccffuucccjjjkkkjyyyeehh"], 1), "oocccffuucccjjjkkkjyyyeehh")
  4. test.assert_equals(longest_consec([], 3), "")
  5. test.assert_equals(longest_consec(["itvayloxrp","wkppqsztdkmvcuwvereiupccauycnjutlv","vweqilsfytihvrzlaodfixoyxvyuyvgpck"], 2), "wkppqsztdkmvcuwvereiupccauycnjutlvvweqilsfytihvrzlaodfixoyxvyuyvgpck")
  6. test.assert_equals(longest_consec(["wlwsasphmxx","owiaxujylentrklctozmymu","wpgozvxxiu"], 2), "wlwsasphmxxowiaxujylentrklctozmymu")
  7. test.assert_equals(longest_consec(["zone", "abigail", "theta", "form", "libe", "zas"], -2), "")
  8. test.assert_equals(longest_consec(["it","wkppv","ixoyx", "3452", "zzzzzzzzzzzz"], 3), "ixoyx3452zzzzzzzzzzzz")
  9. test.assert_equals(longest_consec(["it","wkppv","ixoyx", "3452", "zzzzzzzzzzzz"], 15), "")
  10. test.assert_equals(longest_consec(["it","wkppv","ixoyx", "3452", "zzzzzzzzzzzz"], 0), "")