给女朋友写题解QAQ
题目链接:https://vjudge.net/problem/UVA-414
题意:输入n个由X和空格组成的字符串(X在两端,空格在中间),每次可以同时删除n个字符串中间的空格,当其中一个字符串无法删除(即删到只剩下X)时停止,此时输出剩下的空格数。
求出n个字符串中空格最少的字符串,当这个字符串删完全部空格之后,必将停止删除操作,此时总共删除的空格数为(总空格数-n*最少空格数)
#include<bits/stdc++.h>
#define maxn 1000010
#define LL long long
using namespace std;
string s[20];//存字符串的数组 n最大为13
int main()
{
int n;
while(cin>>n&&n)//当n=0时停止程序
{
cin.ignore();//过滤换行,不然后面读字符串会出现问题
int sum=0,Min=30;//总空格数和最少空格数 最少空格数最大为25
for(int i=1;i<=n;i++)
{
getline(cin,s[i]);//输入
int cnt=0;//计算字符串的空格数
for(int j=0;j<s[i].length();j++)
{
if(s[i][j]==' ')
cnt++;
}
sum+=cnt;
Min=min(Min,cnt);//求最少空格数
}
cout<<sum-n*Min<<endl;
}
return 0;
}
/*
4
XXXX XXXXX
XXX XXXXXXX
XXXXX XXXX
XX XXXXXX
2
XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXX
1
XXXXXXXXX XX
0
*/