洛谷P5587打字练习(String的运用



https://www.luogu.com.cn/problem/solution/P5587参考这个

char i:s1指的是遍历s1(很方便

定义一个string s,然后while(getline(cin,s),s!"EOF"),在定义另一个string store, 然后遍历 s ,如果等于<就清空头部(类似栈)(当然要判断他是不是空的),不是的话就压进去。然后一行一行一一对比(一一对比很奇妙,可以看一下代码

#include<bits/stdc++.h>
using namespace std;
const int N=100010;
string s[N],t[N],s1;
long long n,m,cnt;
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    while(getline(cin,s1),s1!="EOF"){
        n++;
		for(char i:s1)if(i=='<')
		{
		if(!s[n].empty())s[n].pop_back();
		}
		else s[n].push_back(i);
	}
	while(getline(cin,s1),s1!="EOF"){
		if(++m>n)break;
		for(char i:s1)if(i=='<')
		{
		if(!t[m].empty())t[m].pop_back();
		}
		else t[m].push_back(i);
		for(int i=0;i<min(t[m].size(),s[m].size());i++)cnt+=s[m][i]==t[m][i];
	}
	cin>>m;
	cout<<(long long)(cnt*60.0/m+0.5);
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值