規範序是一種對字串比較的排序規則,定義如下:
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...