中级农民
- 积分
- 107
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2016-3-13
- 最后登录
- 1970-1-1
|
大概写了一下
- class Solution:
- # str_list: ['abc', 'def', 'hg']
- # ret: 'abc, def and hg'
- def get_str(self, str_lst):
- if len(str_lst) == 0:
- return ''
- if len(str_lst) <= 2:
- return ', '.join(str_lst)
- last_word = str_lst[-1]
- str = ', '.join(str_lst[:-1])
- str = str + ' and ' + last_word
- return str
- def get_str_with_limit(self, str_lst, limit):
- if len(str_lst) == 0:
- return ''
- if limit < len(str_lst):
- left_part = str_lst[:limit]
- return ', '.join(left_part) + ' and {0} more'.format(len(str_lst)-limit)
- else:
- if len(str_lst) <= 2:
- return ', '.join(str_lst)
- last_word = str_lst[-1]
- str = ', '.join(str_lst[:-1])
- str = str + ' and ' + last_word
- return str
- s=Solution()
- assert s.get_str_with_limit(['alex', 'peter', 'jeremy'], 2) == 'alex, peter and 1 more'
- assert s.get_str_with_limit(['alex', 'peter', 'jeremy', 'joseph'], 2) == 'alex, peter and 2 more'
- assert s.get_str_with_limit(['alex', 'peter', 'jeremy', 'joseph'], 3) == 'alex, peter, jeremy and 1 more'
- assert s.get_str_with_limit(['alex', 'peter', 'jeremy', 'joseph'], 5) == 'alex, peter, jeremy and joseph'
- assert s.get_str_with_limit(['alex', 'peter'], 5) == 'alex, peter'
复制代码 |
|