分析:
字符->数字转换
思路:
题中数字范围很大,因此不能够用一般的int 或long long型,而应该想到用string类型,作char与int之间的转换。
char->int: int num=c-'0'
int->char: char c=num+'0'
代码:
#include <iostream>
#include <vector>
#include <cstring>
#include <algorithm>
using namespace std;
int main(){
string str;
while(cin>>str){
vector<int> num(10,0);
for(int i=0;i<str.size();i++){
int n=str[i]-'0';
num[n]++;
}
int max=0;
for(int i=1;i<10;i++){
if(num[max]<num[i]) max=i;
else if(num[max]==num[i]) max= max<i ? max:i;
}
cout<<max<<endl;
}
return 0;
}
重要收获:
1.string s;s.size()函数
2.vector容器使用
代码中:vector<int> num(10,0)作用是,定义 具有 十个int型变量 的向量,并赋初值为0.
vector可以按照下标访问,类似数组,但与数组相比,它可以动态改变申请区大小,而不必像数组那样,在一开始就固定好大小。但要注意的是,vector下标只能用来访问已经存在的元素。
-结束-
是被Dijkstra折磨的一天,搞明白了出一篇长文