AtCoderビギナーコンテスト174-D.AlterAltar(Thinking)

元の質問リンク
質問の意味:
RとWで構成される文字列が与えられた場合、毎回RとWを交換し、少なくともすべてのRがWの前にくるように何回交換するかを尋ねることができます。
アイデア:
まず、RとWの数は固定されているので、最後はすべてWでなければなりません。
文字列に合計cntWがあるとすると、最後のcntビットのRの数が交換の数になります。
コード:

char s[maxn];
int main(){
    
    
	int n=read();
	cin>>s+1;
	int num=0,res=0;
	for(int i=1;i<=n;i++)
        if(s[i]=='W') num++;
    for(int i=n-num+1;i<=n;i++)
        if(s[i]=='R') res++;
    cout<<res<<endl;
	return 0;
}
 

おすすめ

転載: blog.csdn.net/weixin_45675097/article/details/110293143