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