字母表 ∑ 為 {a , b}
1.設計函數,用以計算建立在 ∑上長度小于n 的字元串的個數,并給出n=5時的字元串個數。
2.在上述功能的基礎上,增加列出所有符合條件的字元串功能。
輸入輸出樣例:
輸入:
1
輸出:
a
b
2
aa
ab
ba
bb
3
aaa
aab
aba
abb
baa
bab
bba
bbb
ac代碼:
例如輸入3:
結果:
分析過程:
先是aaa,無b,不執行while,
遇到if,最後一個+1變成b,
回到頂端輸出aab。
之後b被while隔過去
剩aa,遇到if,最後一個+1變成b,此時為ab。
回到頂端發現不夠3,加一個a(此時為aba),
continue回到頂端,輸出aba。
回到頂端輸出abb。
之後bb被while隔過去
剩a,遇到if,最後一個+1變成b,此時為b。
回到頂端發現不夠3,加兩個a(此時為baa),
continue回到頂端,輸出baa。
回到頂端輸出bab。
剩ba,遇到if,最後一個+1變成b,此時為bb。
回到頂端發現不夠3,加一個a(此時為bba),
continue回到頂端,輸出bba。
回到頂端輸出bbb。
之後bbb被while隔過去,
剩空串,break出去,算法結束。
即是:一開始是空串,然後遵循一下變化:
1.不夠3位,補a。
2.後面有幾位b,全去掉,若變成空串退出算法。
3.如果末尾是a,變成b,夠3位輸出。
二叉樹周遊字母表∑的模型:
以上算法并不一定是最優的,還有其他方法,就不在一一叙述,有興趣的可以自己去研究。
轉載請注明出處:http://blog.csdn.net/acmman