没有白走的路,每一步都算数🎈🎈🎈
题目描述:
输入一个字符串和一个给定的数字,要求从字符串中删除指定数字的字符,得到一个字典序最小的字符串。
输入描述:
第一行:
一个字符串,字符串的长度不大于100。
第二行:
一个数字,数字的长度,小于字符串的长度。
输出描述:
输出最后的字符串占一行。
样例输入输出:
样例输入:
LANQIAO
3
样例输出:
AIAO
代码算法逻辑:
- 删除字符,每次删除的是整个字符串中左边字母较大的一个。因为越往左边字典序也就越大。
- 每一次删掉新字符串最大的字母,删除后,退出循环,执行下一次循环,依次类推,既可以得到第n次后得到的字典序最小的字符串
- 最后的输出结果,整理一下即可
L = list(input())
n = int(input())
for i in range(n):
for j in range(len(L)-1):
if L[j]>L[j+1]:
pop(i)
break
s = ''.join(L)
print(s)
时间测试:
空间测试:
附上代码:
import os
import sys
import time
L = list(input())
n = int(input())
t1 = time.time()
for i in range(n):
for j in range(len(L)-1):
if L[j]>L[j+1]:
L.pop(j)
break
##print(L)
s = ''.join(L)
memory_L = sys.getsizeof(L)
memory_n = sys.getsizeof(n)
memory_s = sys.getsizeof(s)
print(memory_L+memory_n+memory_s,'字节')
t2 = time.time()
print(s)
print(t2-t1)
每日一句
摘自《《晚熟的人》》:
本性善良的人都晚熟,并且是被劣人催熟的。后来虽然开窍了,但也仍然善良与赤诚,不断地寻找同类,最后却成了最孤独的一个。