佬们,c题为啥用字符去匹配一个样例都不对?
#include <bits/stdc++.h> #define int long long using namespace std; int dis(string a, string s,int y) { int count=0; for(int i=0;i<y;i++){ if(a[i]==s[i]) continue; else count++; } return count; } signed main(){ int T; cin>>T; while(T--){ string a; string s; int c; cin>>c; for(int i=0;i<c;i++){ int a1; cin>>a1; if(a1>0) a+='1'; else a+='0'; } string s1; cin>>s1; for(int i=0;i<s1.size();i++){ if(s1[i]=='>') s+='1'; else if(s1[i]=='<') s+='0'; else if(s1[i]=='Z') s+=s[i-1]; } cout<<dis(a,s,c)<<endl; } }
我的思路是大于0的都转成‘1’,小于0的都转成‘0’,从s出发能得到最终正确的字符串,在和a的字符串匹配统计哪些01对不上,自己构造反例也没构造出来,特向大佬们求助!orz