模拟,全TLE求助
查看原帖
模拟,全TLE求助
109721
Your_Majesty楼主2023/7/27 11:51
#include<iostream>
#include<stack>
using namespace std;
stack<int> st1;
int n,q;
string s1,s2;

int main(){
	cin>>q;
	getchar();
	
	for(int i=1;i<=q;i++){
		cin>>n;
		getchar();
		getline(cin,s1);
		getline(cin,s2);
		
		st1.push(s1[0]);			//数据预处理,防止访问非法空间 
		s1.erase(0,1);
		while(st1.top()!=s2[0]){
			st1.push(s1[0]);
			s1.erase(0,1);
		}
		
		while(!s2.empty()){
			if(st1.top()==s2[0]){
				st1.pop();
				s2.erase(0,1);
			}
			
			else if(st1.top()!=s2[0] && !s1.empty()){
				while(st1.top()!=s2[0]){
					st1.push(s1[0]);
					s1.erase(0,1);
				}
			}
			else if(st1.top()!=s2[0] && s1.empty()){
				cout<<"NO"<<endl;
				break;
			}
		}
		
		if(s2.empty()) cout<<"YES"<<endl;
	}
	
	return 0;
}
2023/7/27 11:51
加载中...