一道关于二进制编码的面试题
题目:输入一个字符串,输出该字符串里面的所有的组合。例如输入字符串为“123”,则输出为1 2 3 12 13 23 123(组合数,不考虑顺序)
思路:这个其实和转化为二进制数正好对应。
input_str = input(">>>") l = len(input_str) lst = [] for i in range(1, 2 ** l): str_format = format(i, "0{}b".format(l)) str = "" for num in range(l): if int(str_format[num]) == 1: str += input_str[num] lst.append(str) print(lst)