首页 > 其他分享 >最多提取子串数目 od

最多提取子串数目 od

时间:2024-02-02 11:56:29浏览次数:24  
标签:子串 count 提取 重复 字母 od idxs 字符串 输入

最多提取子串数目
最多提取子串数目
题目给定由[a - z]
26
个英文小写字母组成的字符串
A和
B,其中A中可能存在重复字母,B
中不会存在重复字母
现从字符串
A
中按规则挑选一些字母,可以组成字符串
B。
挑选规则如下:
1)同一个位置的字母只能被挑选一次
2)被挑选字母的相对先后顺序不能改变
求最多可以同时从
A
中挑选多少组能组成B
的字符串
输入
输入为
2
行,第
1
行输入字符串
A,第
2
行输入字符串
B,行首行尾无多余空格
其中
A、B
均由[a - z]
26
个英文小写字母组成
0 < A.length < 100,A
中可能包含重复字母
0 < B.length < 10,B
中不会出现重复字母
输出描述
输出
1
行,包含
1
个数字,表示最多可以同时从
A
中挑选多少组能组成
B
的字符串
行末无多余空格
备注
无需验证输入格式和输入数据合法性
示例一
输入:
badc
bac
输出
1

def result(a, b):
    # 其中 a可能存在重复字母
    # B 不会存在重复字母
    # idxs 对象记录字符串 b 中每个字符的索引
    idxs = {} # bac{b:0, a:1, c:2}
    for i in range(len(b)):
        idxs[b[i]] = i # 题目说了,b上面是没有重复的元素的。
    # count 对象用于记录遍历字符串 a 每个字符串过程中,统计到的符合顺序要求的字符串b中字符出现次数
    count = [0] * len(b)
    print(idxs)  #   映射B字符串和位置
    print(count)
    for c in a: #遍历
        # 取的到值就去得到。取不到就位None
        idx = idxs.get(c)  # idx的值只可能为012,分别对应的bac
        # 取到值,要么为0最大的,就只管加,或者count[idx]<count[idx-1]
        if idx is not None and (idx == 0 or count[idx]<count[idx-1]):
            count[idx] += 1
        print(count)

    return count[-1]


a = input()
b  = input()
print(a)
print(b)
print(result(a,b))

标签:子串,count,提取,重复,字母,od,idxs,字符串,输入
From: https://www.cnblogs.com/domm/p/18002921

相关文章

  • Pod
    1.1Pod1.1.1创建一个pod定义一个podvimpod.yamlapiVersion:v1kind:Podmetadata:name:podspec:containers:-name:nginximage:nginxports:-name:httpcontainerPort:80创建podkubectlapply-fpod.yaml查看pod状态[root@k......
  • Qt Access violation - code c0000005 debug write access violation
    WhentryingtodebugmyQtapplication,theappthrowaexceptionas"Exceptionat0x77da2073,code:0xc0000005:writeaccessviolationat:0x1,flags=0x0"IamusingQtcreatorandvs2005compileranddebugger. Iloadtheprojectonvs2005a......
  • CF921 D. Good Trip
    题面代码点击查看代码#include<bits/stdc++.h>usingnamespacestd;#defineIOSios::sync_with_stdio(0);cin.tie(0);cout.tie(0);#definerep(i,a,n)for(inti=a;i<=n;i++)#defineper(i,a,n)for(inti=n;i>=a;i--)#definefirstfi#defineseconfse#defi......
  • leetcode85. 最大矩形
    85.最大矩形-力扣(LeetCode)参考dp求最大字串和的思想,将一维dp转化为二维的形式,将当前列的和当成一维的数进行dp即可。这题和求最大子矩阵和的dp思路一样。1classSolution{2public:3intmaximalRectangle(vector<vector<char>>&matrix){4intn=m......
  • 解决wsl ubuntu无法code .命令无法下载对应包的问题
    使用code.命令报错,原因:vscode.cdn.azure.cn已被弃用UpdatingVSCodeServertoversionb3e4e68a0bc097f0ae7907b217c1119af9e03435Removingpreviousinstallation...InstallingVSCodeServerforx64(b3e4e68a0bc097f0ae7907b217c1119af9e03435)Downloading:100%Fa......
  • Node学习——Koa框架
    1.简介koa框架是一个遵循洋葱模型的轻量级的nodejs框架,将大部分工作都抛给中间件来处理,框架只专注于compose各个中间件,并按照use注册的顺序逐个执行中间件。2.安装使用安装:npminstallkoa-s使用:constKoa=require('koa');constapp=newKoa;app.listen(3000);3.中间件的使......
  • WebAssembly核心编程[3]: Module 与 Instance
    WebAssembly程序总是以模块来组织,模块是基本的部署、加载和编译单元。在JavaScript编程接口中,模块通过WebAssembly.Module类型表示。WebAssembly.Module通过加载的.wasm二进制文件创建而成,它承载了描述wasm模块的元数据,类似于描述程序集的Assembly对象。WebAssembly.Module自身是......
  • E - Revenge of "The Salary of AtCoder Inc."
    E-Revengeof"TheSalaryofAtCoderInc."ProblemStatementAoki,anemployeeatAtCoderInc.,hashissalaryforthismonthdeterminedbyaninteger$N$andasequence$A$oflength$N$asfollows.First,heisgivenan$N$-sideddie(dice)th......
  • Codeforces Round 922 (Div. 2)
    CodeforcesRound922(Div.2)ps:25分钟AB都over,C给我打破防了、、、讨厌异或、、、我一直以为是数学结果、、、只能说一怒之下怒了一下A.BrickWall想法:要使得稳定性高,那么就多用1*2的砖块就行(A题可以直接找规律,通过样例)#include<bits/stdc++.h>usingnamespacestd;......
  • AtCoder Beginner Contest 330 ABCDE
    AtCoderBeginnerContest330ABCDEA-CountingPasses签到题,不多说。//AConemoretimes//nndbk#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;constintmod=1e9+7;constintN=2e5+10;intmain(){ios::sync_with_stdi......