[Acwing] 3358. 放养但没有完全放养 map使用
前言
思路
题目大意 :
对于给定的
S
S
S 和
T
T
T 串
询问至少 从 0 − n 遍 历 S 串 多 少 次 , 才 可 以 顺 序 的 写 下 t 串 从0- n遍历S串多少次,才可以顺序的写下t串 从0−n遍历S串多少次,才可以顺序的写下t串
因此我们可以考虑使用 m a p < c h a r , i n t > map<char,int> map<char,int>,存放26个字母对应下标
然后再枚举 t t t串,如果 m p [ t [ i ] ] < = m p [ t [ i − 1 ] ] mp[t[i]] <= mp[t[i-1]] mp[t[i]]<=mp[t[i−1]] 说明还得需要一次遍历才可以获得
当前字母
Mycode
map<char,int> mp;
const int N = 1e5+10;
void solve()
{
string s;cin>>s;
string t;cin>>t;
for(int i= 0;i<s.size();i++){
mp[s[i]] = i ;
}
int cnt = 1 ;
for(int i= 1 ;i<t.size();i++){
if(mp[t[i]] <= mp[t[i-1]] )
++cnt;
}
cout<<cnt<<endl;
}
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)