UVA - 1368 DNA Consensus String
题目大意。求各个位置的元素最多的那个,如果一样多按字典序输出…还要输入的跟输出的串用多少次会变得一样..
解题思路:比较几个串的同一个位置,累加各个位置,一次累加后比较是不是最大的,最大的换,一样的话是不是按字典序的,不是的话换。。求用多少次变一样,实际上就是把所有的减掉最多的然后剩下的累加…
不明白地方,不知道为什么用%c输入可以AC,%s就WA
后来知道没把数组清零,没遇到\0会继续输出,结果就WA了,嘛,几天前还笨笨的,现在也笨笨的 = =
#include<stdio.h>
#include<string.h>
char mm[55][1050];
char ans[1050];
int main() {
int cc, r, c;
scanf("%d", &cc);
int an = 0;
while (cc--) {
an = 0;
scanf("%d%d", &r, &c);
for (int i = 0; i<r; i++)
{
scanf("%s", mm[i]);
}
for (int i = 0; i<c; i++)
{
int max = 0;
int str[1200] = { 0 };
for (int j = 0; j < r; j++)
{
str[mm[j][i]]++;
if (max < str[mm[j][i]])
{
max = str[mm[j][i]];
ans[i] = mm[j][i];
}
else if (max == str[mm[j][i]] && mm[j][i] < ans[i])
{
ans[i] = mm[j][i];
}
}
printf("%c", ans[i]);
an += r - str[ans[i]];
}
printf("\n%d\n", an);
}
return 0;
}