受到题目41. 缺失的第一个正数的启发:
因为最终一定是第i个位置要是i。所以我们不妨从左往右扫描。遇到第一个不是i的,我们就和当前i所在的位置进行交换。
而找到i所在的位置就是使用哈希表来记录每个元素所在的下标。然后模拟交换即可
小美有一个排列,所有元素为红色或者白色。
小美可以交换任意两个红色元素的位置,并希望用最少次数使得数组变为非降序。最少要用多少次?
第一行一个正整数n(n≤105),表示数组的长度
第二行n个正整数ai
第三行为一个长为n的字符串,表示染色情况,R为红色,W为白色。
一个整数,表示答案。
如果无法完成,则输出-1。
输入
4
1 3 2 4
WRRW
输出
1