ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

笔试题目:从数字字符串中提取子字符串的个数和位置

2019-08-14 22:03:35  阅读:234  来源: 互联网

标签:count sub 笔试 个数 number len need str 字符串


笔试题目:从数字字符串中提取子字符串的个数和位置

文章目录

0.前言

关键在于子字符串的提取,如十进制21,的二进制是‘10101’,从中找到‘101’
出现的个数,以及从右往左数时首次出现的位置

1.题目描述

例1:

输入:21
输出:2 0

例2:

输入:5
输出:1 0

例3:
输入:10
输出:1 1

2.解决代码

# coding=utf-8
import sys




def int2bin_str():
    # 读取int类型数字
    #int_num = int(sys.stdin.readline())
    int_num = 85
    # 转换为bin类型字符串
    need_middle_str = str(bin(int_num))
    # 去除前缀0b
    need_str = str(need_middle_str[2:])
    return need_str

def deal_with_str(need_str,sub_str):
    reverse_str = need_str[::-1]
    print(reverse_str)
    first_position = reverse_str.find(sub_str)
    print(need_str)
    #count_number = need_str.count(sub_str)

    #count_number = str(re.findall(sub_str,need_str))
    count_number = 0
    for i in range(len(need_str) - len(sub_str) + 1):  # 因为i的下标从0开始,所以len(need_str)-1
        if need_str[i:i + len(sub_str)] == sub_str:
            count_number += 1
    result = str(count_number) + ' ' + str(first_position)
    print(result)


if __name__ == "__main__":
    # 1.转换为二进制的字符串类型
    sub_str = '101'
    need_str = int2bin_str()
    # 2.查找字串并返回结果
    deal_with_str(need_str,sub_str)

3. 注意事项

为什么查找个数不能用count实现?
如从‘10101’中得到的结果是1 0 而实际结果是2 0

 #count_number = need_str.count(sub_str) 

因为把‘10101’从左之右得到‘101’之后,只剩下01,所以结果显示1,因此不能此处不能使用自带的count函数,要根据实际情况修改,正确修改如下


count_number = 0
for i in range(len(need_str) - len(sub_str) + 1):  # 因为i的下标从0开始,所以len(need_str)-1
    if need_str[i:i + len(sub_str)] == sub_str:
        count_number += 1

标签:count,sub,笔试,个数,number,len,need,str,字符串
来源: https://blog.csdn.net/qq_33125039/article/details/99612512

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有