首页 > 其他分享 >Newspaper Headline

Newspaper Headline

时间:2023-06-12 20:58:15浏览次数:46  
标签:Headline s2 s1 int 复制 字符串 Newspaper

非常蛋疼的题,做了俩小时,看题解用了一个半小时

给定字符串 s1​ 和 s2​,问至少要用多少个 s1​ 首尾相接拼成新字符串,使得新字符串在删除一些字符后成为 s2​?

感谢@barry_wang 提供的翻译

输入输出样例

输入 #1
abc
xyz
输出 #1
-1
输入 #2
abcd
dabc
输出 #2
2

#include<bits/stdc++.h>
using namespace std;
set<int>g[26];
string s1,s2;
int res=1,p=-1;
int main()
{
    cin>>s1>>s2;//读入
    for(int i=0;i<s1.size();i++) g[s1[i]-'a'].insert(i);//保存每一个字符出现的位置和次数
    for(int i=0;i<s2.size();i++){
        if(g[s2[i]-'a'].empty()){//判断
            cout<<-1;
            return 0;
        }
        if(g[s2[i]-'a'].upper_bound(p)==g[s2[i]-'a'].end()) res++,p=-1;
        //这个地方真的很巧妙,从s2开始找s1的位置,找到第一个符合它的位置,然后接上这个一个字符串
        //举个例子: abcd,cadc,首先c的位置是一开始就会匹配到的,因为初始值为-1,所以第一次循环肯定是找到c
        //此时的字符串可以是abcd,也可以看为cd
        //然后第二次,由于第一次是c的位置,也就是3,我们s2的第二个字符是a,对应s1中的a是第一个位置,那么很明显,我们要在c后面接一个a才行
        //接一个abcd,此时字符串是abcabcdd
        //依次循环就可以了
        p=*g[s2[i]-'a'].upper_bound(p);//每次都要更新要寻找的字符
    }
    cout<<res;
    return 0;
}

 

标签:Headline,s2,s1,int,复制,字符串,Newspaper
From: https://www.cnblogs.com/o-Sakurajimamai-o/p/17476070.html

相关文章

  • [CEOI2021] Newspapers
    模拟赛没有判\(n=1\),喜提\(0\)分。感谢每个subtask都放\(n=1\)的善良出题人。看到题感觉A的操作好像比较弱小,唯一的用处似乎只能用来排除B在哪些位置,那这样就有一个暴力了,直接记录当前还有哪些点上可能有B,然后直接跑bfs,就可以通过第一档分了。看到第二档分似乎比较......
  • 爬虫抓取新闻模块提取库推荐newspaper
    安装pip3installnewspaper3k使用fromnewspaperimportArticleurl='http://www.example.com/path/to/article'article=Article(url)article.download()art......
  • Headline
     ......
  • k8s--service 之 HeadLiness、NodePort 使用
    前戏环境还是使用我们上节的环境HeadLiness在某些场景中,开发人员可能不想使用Service提供的负载均衡功能,而希望自己来控制负载均衡策略,针对这种情况,kubernetes 提供了H......
  • [论文阅读] Template-Based Headline Generator for Multiple Documents
    pretitle:Template-BasedHeadlineGeneratorforMultipleDocumentsaccepted:IEEEAccesspaper:https://ieeexplore.ieee.org/document/9729734/code:https://gi......
  • HeadLiness类型的Service
    HeadLiness类型的Service在某些场景中,开发人员可能不想使用Service提供的负载均衡功能,而希望自己来控制负载均衡策略,针对这种情况,kubernetes提供了HeadLinessService,这......
  • k8s--service 之 HeadLiness、NodePort 使用
    前戏环境还是使用我们上节的环境:https://www.cnblogs.com/zouzou-busy/p/16156384.htmlHeadLiness在某些场景中,开发人员可能不想使用Service提供的负载均衡功能,而希望......