列表

详情


NC21362. 贪心只能过样例

描述

小西是单身狗,所以她不喜欢看到有CP在秀恩爱!
有一天,小西出来闲逛,发现街上的行人都排成了一排,并且可以用这种形式表示:
MMFMMFFFMMM
其中M表示男孩子,F表示女装的男孩子
小西想让所有的CP都消失!

小西可以把任意一对'MF'或者'FM‘赶走并变为一个真正的小姐姐‘J’
例如上述的例子可以变为:
MJMJFJMM
本来街上有11个人,这样就只有8个人了

小西想知道街上行人最少可以变为多少

输入描述

第一行为一个整数T,表示数据的组数。
接下来T行为T组数据,每组数据只有一行字符串s,表示街上的行人。


输出描述

对于每组数据,输出一行一个整数表示街上行人最少的数量

示例1

输入:

1
MMFMMFFFMMM

输出:

8

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++11(clang++ 3.9) 解法, 执行用时: 5ms, 内存消耗: 480K, 提交时间: 2018-11-25 13:32:49

#include<iostream>
#include<string>
using namespace std;
string a;
int main(){
	int T;cin>>T;
	while(T--){
		cin>>a;
		int n = a.size();
		for(int i=1;i<a.size();++i){
			if(a[i-1]!=a[i]) {
				n--;++i;
			}
		}
		cout<<n<<endl;
	}
} 

Python3(3.5.2) 解法, 执行用时: 29ms, 内存消耗: 3552K, 提交时间: 2018-11-25 13:48:14

import re
def solve():
    s = input()
    s1 = re.sub('MF|FM', 'J', s)
    return print(len(s1))
a = int(input())
for i in range(a):
    solve()

pypy3 解法, 执行用时: 161ms, 内存消耗: 28732K, 提交时间: 2021-08-19 15:26:19

import re
for _ in range(int(input())):
    print(len(re.sub('MF|FM','J',input())))

上一题