B. Game with string 思維問題轉化
阿新 • • 發佈:2019-05-01
ace str with namespace \n fine 多少 value c++
B. Game with string 思維問題轉化
題意
有一個字符串 每次可以刪去連續的兩個同樣的字符,兩個人輪流刪,問最後誰能贏
思路
初看有點蒙蔽,仔細看看樣例就會發現其實就是一個括號匹配問題,直接搞一個棧看有多少對合法的括號即可
#include<bits/stdc++.h> #define FOR(i,f_start,f_end) for(int i=f_start;i<=f_end;i++) #define MS(arr,arr_value) memset(arr,arr_value,sizeof(arr)) #define F first #define S second #define pii pair<int ,int > #define mkp make_pair #define pb push_back using namespace std; typedef long long ll; const int maxn = 3e5+4; char s[maxn]; stack<char>q; int main(){ int ans=0; cin>>s+1; int len=strlen(s+1); q.push(s[1]); for(int i=2;i<=len;i++){ if(!q.empty()&&s[i]==q.top()){ ans++; q.pop(); } else q.push(s[i]); } if(ans%2==1)cout<<"Yes\n"; else cout<<"No\n"; return 0; }
B. Game with string 思維問題轉化