[编程题] 算法基础-字符移位
小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。
你能帮帮小Q吗?
输入描述:
输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000.
输出描述:
对于每组数据,输出移位后的字符串。
输入例子:
AkleBiCeilD
输出例子:
kleieilABCD
代码如下:
def movestr(list_s): i = 0 count = 0 while count < len(list_s): if list_s[i].isupper(): list_s += list_s[i] list_s = list_s[:i] + list_s[i+1:] i -= 1 i += 1 count += 1 return list_s if __name__ == '__main__': while True: try: print movestr(raw_input().strip()) except: break
因为题目要求不能申请空间,因此我的思路是顺序找到一个大写字母,换到最后,然后删除这个字母。
最后吐槽一下这个测试黑盒,有一个样例是前后带了一个空格符的,而题目中又没有说明,在线提交的时候就说未通过……
最后看了大家的答案才知道要去除输入的首尾空格符,因此在输入位置添加strip()。
祭奠我那为此逝去的30分钟青春

浙公网安备 33010602011771号