哎呀,康了康别的dalao的文章,嗯,我今天将这道题来点干货吧。
闭嘴,我知道你有可能做出来了,但请你听我说:
你怎么做出来的?我这个方法有点奇特,唉先上代码!
#include <bits/stdc++.h>
using namespace std;
int n,cnt;
string x,ma = "";
int main(){
cin >> n;
for (int i = 1;i <= n;i++){
cin >> x;
if (x.size() > ma.size()) {
ma = x;
cnt = i;
}
else if (ma < x && ma.size() == x.size()) {
ma = x;
cnt = i;
}
}
cout<<cnt<<endl<<ma<<endl;
return 0;
}
ma是什么?记录最长的那个票数。真么说吧,如果我随便说给你10个数,在你能计算的范围内,你能不能快速告诉我,最大的是哪个数?你只需要记住第一个数,在以下数中只要有比它大的就忘记第一个数,记住比它大的数,就简单了。我知道你是怎么做出来的,停!这不是模拟题,是一个入门级别的字符串题。
你有没有发现,我的第五天文章里有两道题,第一道就是一个入门题,算区间的。你不知道没关系,和这道题一样,是个概念性的题。
代码内的循环很简单,读入和判断。第一个if判断数位,第二个if.....往后看。
1. C ++字符串支持常见的比较操作符(>,>=,<,<=,==,!=),甚至支持string与C-string的比较(如 str<”hello”)。
在使用>,>=,<,<=这些操作符的时候是根据“当前字符特性”将字符按字典顺序进行逐一得 比较。字典排序靠前的字符小,
比较的顺序是从前向后比较,遇到不相等的字符就按这个位置上的两个字符的比较结果确定两个字符串的大小(前面减后面)
同时,string (“aaaa”) <string(aaaaa)。
2. 另一个功能强大的比较函数是成员函数compare()。他支持多参数处理,支持用索引值和长度定位子串来进行比较。
他返回一个整数来表示比较结果,返回值意义如下:0:相等 1:大于 -1:小于 (A的ASCII码是65,a的ASCII码是97)
总之,可以更数字比较一样。
懂了吗?骚年!
加油!