DI String Match
- 题目描述:给定一个只包含D和I字符的字符串,按照字符串长度进行递增递减,出现I表示递增,出现D表示递减,最后输出列表。
- 思路:按照题目描述,遍历输入字符串,进行条件判断后进行递增or 递减即可。
- code:
class Solution(object):
def diStringMatch(self, S):
lo, hi = 0, len(S)
ans = []
for x in S:
if x == 'I':
ans.append(lo)
lo += 1
else:
ans.append(hi)
hi -= 1
return ans + [lo]
- 总结:题目本身描述已经很直观,让人蛋疼的问题在于最后列表返回时,多了一项,而多的这一项就打破了原有简单的规律,而事实上,多的一项仅仅是满足 x == 'I' 条件的下一轮递要插入的项而已,而没发现这点的我把问题想复杂了,以为每次插入的项是一个包含二个元素的元组,每次插入时是要修改当前列表最后一项,再插入新的元素,最终发现不得法。这个故事告诉我,简单问题还是要简单化!