题目大意:
输入一个字符串流,里面有数字和非数字,非数字将数字隔开了,要找出,出现次数最多的数字。
思路:
先将所有非数字用统一字符替换,然后找出数字,需要判断下一个字符是不是数字,然后将数字存到hashmap里面,出现存在过的数字,hashmap的value+1;最后输出value值最大的数字。
代码:
1 #include"iostream" 2 #include"map" 3 #include"vector" 4 #include"algorithm" 5 #define MAX 10000 6 using namespace std; 7 8 char c[MAX]; 9 bool tag; 10 map<int, int> m,msort; 11 12 int main() 13 { 14 while (cin >> c) 15 { 16 tag = false; 17 for (int i = 0; i < strlen(c); i++) 18 { 19 if (c[i] < '0' || c[i]>'9') 20 c[i] = '*'; 21 cout << c[i]; 22 } 23 cout << endl; 24 for (int i = 0,j=0; i < strlen(c); i++) 25 { 26 int t=0; 27 while (c[i] == '*') 28 i++; 29 while (c[i] != '*'&&c[i]!='