每天开心一点

Python:每日一题 95

2017-11-27 14:50:00    六月    622    来源: http://bbs.fishc.com/thread-96065-1-1.html

有一个多行的字符串,要给每行的开头加上数字,这个数字代表其后紧接着的与本行内容相同的行数。例如
  1. FishC
  2. FishC
  3. FishC
  4. FishC
  5. Little turtle
  6. Little turtle
  7. Python
  8. FishC
复制代码

结果为
  1. (3)FishC
  2. (2)FishC
  3. (1)FishC
  4. (0)FishC
  5. (1)Little turtle
  6. (0)Little turtle
  7. (0)Python
  8. (0)FishC
复制代码




我的解法:


  1. str1 = '''FishC
  2. FishC
  3. FishC
  4. FishC
  5. Little turtle
  6. Little turtle
  7. Python
  8. FishC'''
  9. list1 = str1.split('n')
  10. count = 0
  11. next = list1[-1]
  12. list1[-1] = '(0)' + list1[-1]
  13. for i in range(-2, -len(list1) - 1, -1):
  14.     if list1[i] == next:
  15.         count += 1
  16.     else:
  17.         count = 0
  18.     next = list1[i]
  19.     list1[i] = '(%d)'%count + list1[i]
  20. print('n'.join(list1))
复制代码