给定一个长度为 n
的字符串,字符串中只包含字母 A
和 B
。
请问,哪个字母在字符串中出现的次数更多?
输入格式
第一行包含一个整数 n
。
第二行包含一个长度为 n
的字符串,字符串中只包含大写字母 A
和 B
(也可能只包含 A
或只包含 B
)。
输出格式
如果字母 A
出现的次数更多,则输出 A。
如果字母 B
出现的次数更多,则输出 B。
如果出现的次数一样多,则输出 T。
数据范围
对于前三个测试点,1≤n≤10
。
对于全部测试点,1≤n≤105
。
输入样例1:
6
ABAAAA
输出样例1:
A
输入样例2:
7
BBBAABA
输出样例2:
B
输入样例3:
6
BABABA
输出样例3:
T
算法1
用字符串来做这道题,比较简单
include [HTML_REMOVED]
define long long
using namespace std;
void res(string a){
int suma=0,sumb=0;
for(int i=1;i<=a.length();i){
if(i==’A’) suma;
else if(i==’B’) sumb++;
}
if(max(suma,sumb)==suma) printf(“A\n”);
else if(max(suma,sumb)==sumb) printf(“B\n”);
else printf(“T\n”);
}
signed main(){
int n;
scanf(“%lld”,&n);
string qwq;
cin >> qwq;
res(qwq);
return 0;
}
算法2
用字符来做
blablabla
include [HTML_REMOVED]
include [HTML_REMOVED]
using namespace std;
void res(const string& a) {
int suma = 0, sumb = 0;
for (char c : a) {
if (c == ‘A’) suma;
else if (c == ‘B’) sumb;
}
if (suma > sumb) {
printf(“A\n”);
} else if (sumb > suma) {
printf(“B\n”);
} else {
printf(“T\n”);
}
}
int main() {
int n;
cin >> n;
string qwq;
cin >> qwq;
res(qwq);
return 0;
}
就是把代码放到
之间
代码应该是这样的:
实测: