第一种方法是构建一个空字符串maxx,每次和输入的字符串比较,找到最大的则更新maxx串,然后更新位置信息。
所谓最大就是 输入的字符串的长度大于maxx的长度或者在长度相等的情况下比较字典序的大小。最后输出信息即可。
详情见代码
#include
#include
#include
#define ll long long
using namespace std ;
int main(){
int n ;
cin >> n ;
string str ;
string maxx = "" ;
int pos = -1 ;
for ( int i = 0 ; i < n ; i ++ ){
cin >> str ;
if ( str.size() > maxx.size() || ( str > maxx && str.size() == maxx.size() )){
maxx = str ;
pos = i ;
}
}
cout << pos + 1 << endl << maxx << endl ;
return 0 ;
}
第二种方法就是结构体排序,利用sort在cmp条件下进行排序。cmp条件和上述相似。最后输出结果。
详情见代码。
#include
#include
#include
#define ll long long
using namespace std ;
typedef struct{
string str ;
int pos ;
}meassage ;
bool cmp( meassage a , meassage b ){
if ( a.str.size() == b.str.size() ){
return a.str < b.str ;
}
return a.str.size() < b.str.size() ;
}
int main(){
meassage mea[25] ;
int n ;
cin >> n ;
for ( int i = 0 ; i < n ; i ++ ){
cin >> mea[i].str ;
mea[i].pos = i + 1 ;
}
sort( mea , mea + n , cmp ) ;
cout << mea[n-1].pos << endl << mea[n-1].str ;
return 0 ;
}