UVA 414(Machined Surfaces)字符串水题

给女朋友写题解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
*/

猜你喜欢

转载自blog.csdn.net/eknight123/article/details/80304151
今日推荐