1874 字串排序解法心得

2021-09-10 01:13:12 字數 1104 閱讀 7055

現在你的任務是給定一些字串(只由大寫字母組成),把他們按照無序度從小到大排序,如果無序度一樣,那麼就按照輸入的相對順序排序。

收起

單組測試資料。

第一行有兩個整數n(0 < n <= 50)和m (0 < m <= 100),分別表示輸入的字串的長度和字串的個數。

接下來m行,每一行包含乙個長度為n的字串,只由大寫字母組成。

輸出m行,表示排序之後的字串。
10 6

aacatgaagg

ttttggccaa

tttggccaaa

gatcagattt

cccgggggga

atcgatgcat

cccgggggga

aacatgaagg

gatcagattt

atcgatgcat

ttttggccaa

tttggccaaa

對於如今的我來說,字串的儲存是乙個重要缺陷,今天通過這道題得以突破。

思路及**如下:

#include

#include

#include

#include

#include

using namespace std;

int main() ,k[1000]=,l,m;

char f[1000][1000],g[10000];

cin>>a>>b;

for(c=1;c<=b;++c)

for(d=1;d<=a;++d)

cin>>f[c][d]; //這樣可以讓我在已知輸入多少字串的情況下,可以通過二維陣列儲存字串,簡單易懂。

for(c=1;c<=b;++c)

for(d=a;d>=1;--d)

}sort(h+1,h+b+1);//我們把乙個儲存複雜度的陣列排序,以便於我們能把各字串根據複雜度排序。

for(c=1;c<=b;++c)

for(d=1;d<=b;++d)

if(h[c]==k[d])//在這裡就需要用到我第二個設立的陣列,它的作用用來確定字串,d就是第幾個字串,而此時c則是讓第d個字串放在c的位置。

return 0;

}

51nod 1874 字串排序

定義乙個字串的無序度為所有位置後面的字母比該位置的字母小的總數之和。比如 daabec 這個字串的無序度是5,因為d後面有4個位置比它小 aabc e後面有1個比它小 c 其它位置後面沒有比自己小的。aacedgg 的無序度為1 e後面有乙個d比它小 zwqm 的無序度為6,每個位置後面所有的字母都...

51nod 1874 字串排序

1874 字串排序 基準時間限制 1 秒 空間限制 131072 kb 分值 5 難度 1級演算法題 定義乙個字串的無序度為所有位置後面的字母比該位置的字母小的總數之和。比如 daabec 這個字串的無序度是5,因為d後面有4個位置比它小 aabc e後面有1個比它小 c 其它位置後面沒有比自己小的...

9 字串排序

字串排序 time limit 1000 ms memory limit 65536 kb description 輸入3個字串,按字典序從小到大進行排序。input 輸入資料有一行,分別為3個字串,用空格分隔,每個字串長度不超過100。output 輸出排序後的三個字串,用空格分隔。sample ...