当前位置: 首页 > article >正文

笔试-字符串2

应用

给定长度分别为n1、n2的字符串s1、s2,以及正整数k。在s2中查找一个子字符串child_s2,满足以下三个条件,称作s2以长度k冗余覆盖s1:
child_s2长度:n1+k;
child_s2包含s1中的全部字母;
child_s2中每个字母的重复次数 >= s1中同一个字母的重复次数;
求从最左侧开始,满足“s2以长度k冗余覆盖s1”的首个元素的下标。
例如:s1=“ab” s2=“aabcd” k=1,则子串aab、abc均满足条件,由于前者在后者左侧,所以结果为0。

实现

s1 = input("请输入字符串s1:")
s2 = input("请输入字符串s2:")
k = int(input("请输入正整数k:"))
n1 = len(s1)
n2 = len(s2)

# a = [0, 1, 2, 3],j-i+1 = len(a),j = len(a)-1+i
start = 0
stop = n1+k-1+start

children = []
indexs = []

while stop < n2:
    element = []
    index = []
    # 长度为n1+k的子字符串
    for i in range(start, stop+1):
        element.append(s2[i])
        index.append(i)
    # 对齐的
    children.append(element)
    indexs.append(index)

    start = start + 1
    stop = stop + 1
# print(children)
# print(indexs)

children_filter = []
indexs_filter = []
for i in range(0, len(children)):
    sum = 0 # 相同计数
    for j in range(0, n1):
        if s1[j] in children[i]:
            sum = sum + 1
    # 包含s1的所有元素
    if sum == n1:
        children_filter.append(children[i])
        indexs_filter.append(indexs[i])
# print(children_filter)
# print(indexs_filter)
print(indexs_filter[0][0])

http://www.kler.cn/a/540672.html

相关文章:

  • 51c自动驾驶~合集49
  • 人工智能学习(七)之神经网络
  • ndk 编译opencv(去除libandroid.so mediandk依赖)
  • 理邦仪器嵌入式(C/C++开发)开发面试题及参考答案
  • Linux(21)——系统日志
  • SQLAlchemy 的内存消耗
  • Web前端开发--HTML
  • java后端开发day10--综合练习(一)
  • 基于“感知–规划–行动”的闭环系统架构
  • DeepSeek+3D视觉机器人应用场景、前景和简单设计思路
  • 深入理解TCP/IP协议栈:从原理到实践
  • Linux: ASoC 声卡硬件参数的设置过程简析
  • 协议-ACLLite-ffmpeg
  • C++ STL算法总结
  • salesforce 中 Account 转移给新 Owner 后如何仅转移 Case,而不转移 Opportunity
  • 怎么编写AI模型prompt(提问,表达需求)
  • ZooKeeper Watcher 机制详解:从注册到回调的全过程
  • Vue07
  • vi 是 Unix 和 Linux 系统中常用的文本编辑器
  • 易仓与金蝶云星空无缝集成:实现高效R调拨入库
  • 如何在浏览器中搭建开源Web操作系统Puter的本地与远程环境
  • Python 高阶函数(详解)
  • 主机安全:数字时代的基石
  • harmonyOS的路由跳转及数据请求
  • UNet-二维全景X射线图像牙齿分割(代码和模型修改)
  • DeepSeek神经网络:技术架构与实现原理探析