[问题] 递回问题

楼主: AhPEoW (阿飘)   2018-10-25 02:23:06
大家好,这是写资料结构的题目时碰到的问题
题目要求用递回写一个程式
假如input为abc
则印出abc三个大小写的排列组合
abc, abC, aBc, aBC, Abc, AbC, ABc, ABC
当然顺序也要跟测资一致
我拿recursive和permutation当关键字去google过了
都只有abc, acb...这种排列组合的文章
虽然我有写出一个用iteration的版本了
但还是被TA打枪QAQ
还请各位先进帮帮我,谢谢
作者: GGing (小轩轩)   2018-10-25 04:12:00
你漏了一个 aBC每个字母可以是大写或小写,所以有2^3=8种组合可以视为求元素的所有集合来写基本上就是十进制0-7转成二进制000-111的概念基本上就是十进制0-7转成二进制000-111的概念
作者: cphe (魔鬼藏在垃圾筒里)   2018-10-25 09:15:00
理论上一般的排列组合你写得出来这题应该不会是问题,其实一样啊 每个位子两个选择,选完递回剩下的
作者: ronin728 (浪人)   2018-10-25 15:27:00
题目的障眼法,其实这用二进制的位元做超简单然后循环可以改成尾端递回骗骗TA
作者: flowwinds (..)   2018-10-25 19:25:00
(印第一个小写+印其他的) 及 (印第一个大写+印其他的)
作者: lingege32 (MUDA)   2018-10-27 18:42:00
应该是做complete binary tree,然后用递回做dfs
作者: bill1992 (我是魔法的踪迹)   2018-11-11 10:01:00
递回一个数字就好吧 每次呼叫数字+1 然后用二进制表示数字 位数是1的大写

Links booklink

Contact Us: admin [ a t ] ucptt.com