HJ14 字符串排序

?重載less比較符號(hào)。

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
//1 a<b
static inline int compareAlpha(const char &a,const char &b){
  if(b-a>0){
      return 1;
  }else if(b-a<0){
      return -1;
  }else{
      return 0;
  }
}
//stra<strb
bool strComp(const std::string &stra,const std::string &strb){
    int m=stra.size(),n=strb.size();
    int i=0;
    int min=m>n?n:m;
    while(i<min){
        if(1==compareAlpha(stra.at(i),strb.at(i))){
            return true;
        }else if(-1==compareAlpha(stra.at(i),strb.at(i))){
            return false;
        }
        i++;
    }
    if(n>m){
        return true;
    }
    return false;
}
int main(){
    std::vector<std::string> vec;
    int n=0;
    {
        std::string line;
        getline(std::cin,line);
        n=std::stoi(line);
    }
    for(int i=0;i<n;i++){
        std::string line;
        getline(std::cin,line);
        vec.push_back(line);
    }
    std::sort(vec.begin(),vec.end(),strComp);
    for(int i=0;i<n;i++){
        std::cout<<vec.at(i)<<std::endl;
    }
    return 0;
}

?c++的字符串可以直接比較。可以直接調(diào)用,最終結(jié)果就是按照升序排列。

 std::sort(vec.begin(),vec.end());
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容