1247 規範序排列

2021-09-02 15:06:23 字數 822 閱讀 6071

規範序是一種對字串比較的排序規則,定義如下:

1 串長小的排在前面;

2 相同串長的按照字典序排列順序。

串的字典序遵循如下遞迴定義:

1 兩串的前n-1個字元相同,第n個字元字典序小的排在前面;

2 只有兩串的字元完全相同時,才有兩串相等。

字元的字典序即按照字母排列的順序,即a, b, …, z。ascii碼範圍內的字串的字典序比較可以用strcmp()函式(原型和功能見hint)完成。

第一行輸入為乙個整數n(n<=100),後接n行,每行乙個字串。每個字串僅由小寫字母「a」~「z」組成,長度不超過10個字元。

輸出為n行,按照字串的規範序排列,規範序小的排前面。

10abc

bcacacac

aacaba

bcdabac

babc

bcca

daaac

abaabc

aca原型: int strcmp(const char *s1,const char * s2);

功能:比較字串s1和s2。

當s1當s1==s2時,返回值=0

當s1>s2時,返回值》0

#include #include char swap(char str1,char str2)

}int main()

for(j=1;j<=n;j++)

for(i=1;i<=n-j;i++)

}for(i=1;i<=n;i++)

printf("%s\n",c[i]);

return 0;

}

全排列 字典序排列

include includeusing namespace std define dig num 4 void cal int str int first int last cout endl if first last bool get f l int list int former int l...

字典序全排列

思路 從左向右找到不符合遞增規律的第乙個數,比如1,2,5,4,3中的這個數就是2,將其與其右面遞增序列中的比他大的最小數,比如在前面例子中的3互換,得到1,3,5,4,2,最後,將該數右邊的遞增序列排序,得到1,3,2,4,5即可。上面這個是求某乙個數的下乙個排列,而全排列只需按這個思路,將初始陣...

求先序排列

給出一棵二叉樹的中序與後序排列。求出它的先序排列。約定樹結點用不同的大寫字母表示,長度 8。2行,均為大寫字母組成的字串,表示一棵二叉樹的中序與後序排列。1行,表示一棵二叉樹的先序。badc bdca abcd 就是乙個先中後序遍歷的問題,看 吧,有標註示。include include using...