"
题目大意:
有一个数字图像设备有N行,每行有25个字符。第一列和第25列都是X,最左和最右都可以是连续的多个X,中间是空格。 当把最右往左平移到X相遇的时候,计算整个平面的空格数。注意
输入:
行数N,然后是N行的字符;
注意:sample 中用B表示空格是为了看的方便,真实的输入是ASCII的空格字符;
输出:
平面的空格数;
Sample Input
4
XXXXBBBBBBBBBBBBBBBBXXXXX
XXXBBBBBBBBBBBBBBBXXXXXXX
XXXXXBBBBBBBBBBBBBBBBXXXX
XXBBBBBBBBBBBBBBBBBXXXXXX
2
XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXX
1
XXXXXXXXXBBBBBBBBBBBBBBXX
0
Sample Output
4
0
0
思路分析:这道题的主要是读懂题目意思。
//代码效果参考: https://v.youku.com/v_show/id_XNjQwNjgyNjQ0MA==.html
每行固定25个字符,当平移结束的时候是有某一行中间没有了空格,这一行为X字符个数最多的一行,其中X字符数记为max,则其他行的空格数为max减去该行的X字符个数;
假设记录每i行的X个数为aa【i】,其中aa【i】最大为max;则 max - aa【i】 为每行的空格数,平面的空格数为 sum(max - aa【i】)
#include
#include
#include
using namespace std;
int main()
{
// freopen(""input.txt"",""r"",stdin);
string s;
int count,n,i,max,j;
int aa【100】;
while(cin]n&&n)
{
getchar();
max=0;
memset(aa,0,sizeof(aa));
for(j=0;j
{
count=0;
getline(cin,s);
for(i=0;i
if(s【i】=='X')
count++;
aa【j】=count;
if(max[span style=""color: rgba(0, 0, 0, 1)"">count)
max=count;
}
count=0;
for(i=0;i
{
count+=max-aa【i】;
}
//代码效果参考: https://v.youku.com/v_show/id_XNjQwMDM2ODYzMg==.htmlcout[count[endl;
}
return 0;
}
"