#30132: 解題思路


chen199940@gmail.com (ToniXiang)

學校 : 國立臺中科技大學
編號 : 179887
來源 : [36.231.198.195]
最後登入時間 :
2024-09-30 14:43:59

重點是直接輸入數字會溢位(超過long),所以我輸入的是字串,用比較的方式去做排序

1.長度有沒有一樣

2.(條件1成立)由左到右比較字元是否相同

同=>轉ACSCII誰大

不同=>繼續執行做比較直到字串結束

bool compare(string a, string b) {
    if(a.size()!=b.size()){
        return a.size()<b.size();
    }
    else{
        for(int i=0;i<a.size();i++){
            if(a[i]!=b[i])return (int)a[i]<(int)b[i];
        }
    }
}

Main:

string line,data;
vector<string>v,v2;
cin.ignore();

getline(cin,line);
stringstream ss(line);
 while(getline(ss,data,' ')){
       v.push_back(data);
 }

sort(v.begin(),v.end(),compare);

排列組合用遞迴:不做說明