字符串自动校对——2019字节跳动笔试题目

字符串自动校对(修正拼写错误字符串)

题目描述(1)三个同样的字母连在一起,一定是拼写错误,去掉一个就好了,比如:helllo->hello;(2)两对一样的字母(AABB型)连在一起,一定是拼写错误,去掉第二对的一个字母就好了:比如:helloo->hello;(3)上面的规则优先“从左到右匹配”,即如果是AABBCC,虽然AABB和BBCC都是错误拼写,应该优先考虑修复AABB,结果为AABCC

输入描述:第一行包括一个数字N,表示本次用例包括多少个待校验的字符串。后面跟随N行,每行为一个待校验的字符串。

输出描述:N行,每行包括一个被修复后的字符串。

举例:

输入:2

         helloo

         wooooooow

输出:hello

           woow   

代码实现:

#字符串修正函数
def correction_string(s):
    n = len(s)
    r = list(s[:min(len(s), 2)])
    for i in range(2, n):
        if s[i] == r[-1] == r[-2]:
            continue
        if s[i] == r[-1] and len(r) > 2 and r[-2] == r[-3]:
            continue
        r.append(s[i])
    new_string = ''.join(r)
    return new_string

for i in range(int(input())):
    s=input()
    print(correction_string(s))

运行结果:

 

附录题目(这个也是字节跳动笔试题,比较简单):

货币找余

    题目描述:Z国的货币系统包含面值1元、4元、16元、64元共计四种硬币,以及面值1024元的纸币。现在小Y使用1024元的纸币购买了一件价值为N的商品,请问最少他会收到多少硬币。

    输入格式:共一行,包含整数N。

    输出格式:共一行,包含一个数,表示最少收到的硬币数。

    数据范围:0<N≤1024

    输入样例:200

    输出样例:17

    样例解释:花200,需要找零824块,找12个64元硬币,3个16元硬币,2个4元硬币即可。

代码实现:

surplus_coin=1024-int(input())
number=0
coin_list=[64,16,4,1]
for i in coin_list:
    number+=surplus_coin//i
    surplus_coin=surplus_coin%i
print(number)

运行结果:


 

交流学习资料共享欢迎入QQ群:955817470

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

探模之翼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值