思路:使用sort排序
疑惑:自己的cmp比较函数
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef struct stu stu;
struct stu{
ll id;
string s;
};
bool cmp(stu x,stu y){
if(x.s.size()==y.s.size()){
string sx=x.s;string sy=y.s;
char a,b;
for (ll i=0;i<=x.s.size()-1;++i){
a=sx[i];b=sy[i];
return a>b;
}
}
else return x.s.size()>y.s.size();
}
void solve(){
ll n;cin>>n;
vector<stu>v;
for(ll i=0;i<n;++i){
string s;cin>>s;
v.push_back({i+1,s});
}
sort(v.begin(),v.end(),cmp);
cout<<v[0].id<<"\n"<<v[0].s;
}
int main(){
ll T=1;
while(T--)solve();
return 0;
}
请问各位大佬,我的按位比较每一位的数字的部分,哪里有问题??
另,附上自己这个错误代码的hack数据
2
1111
1113
输出的是第一个,1111