华为机试46-按字节截取字符串

题目描述
编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF"6,应该输出为"我ABC"而不是"我ABC+汉的半个"。

 

输入描述:
输入待截取的字符串及长度

输出描述:
截取后的字符串

示例1
输入
我ABC汉DEF
6
输出
我ABC

 

参考1:

while True:
    try:
        num,n = list(input().strip().split())
        n = int(n)
        res = []
        k = 0
        for s in num:
            if s.isalpha():   #是否为字母
                k += 1
                if k <= n:
                    res.append(s)
                else:
                    break
            else:
                k += 2
                if k <= n:
                    res.append(s)
                else:
                    break
        print(''.join(list(map(str,res))))
    except:
        break

执行结果: 答案正确:恭喜!您提交的程序通过了所有的测试用例 用例通过率: 100.00% 运行时间: 16ms 占用内存: 3368KB

 

参考2:

while True:
    try:
        s,n=input().split()
        n=int(n)
        if s[n-1].isalpha():  #是否属于字母
            print(s[:n])
        else:
            print(s[:n-1])
    except:
        break

执行结果: 答案正确:恭喜!您提交的程序通过了所有的测试用例 用例通过率: 100.00% 运行时间: 20ms 占用内存: 3432KB

 

posted @ 2020-09-01 15:50  Andy_George  阅读(172)  评论(0编辑  收藏  举报