难度中等
给定一个字符串数组 arr
,字符串 s
是将 arr
某一子序列字符串连接所得的字符串,如果 s
中的每一个字符都只出现过一次,那么它就是一个可行解。
请返回所有可行解 s
中最长长度。
思路:
采用递归的思路,找到全部的可能组合,并计算各结果中字符串的长度;
每次计算当前字符串的二进制串,和当前已有字符串的二进制串进行比较:
若不相交,则当前字符串加入当前结果字符串,并进行下一次递归;
若相交,选择其它字符串进行处理。
迭代过程:
每个字符串都需要计算在内,一次遍历全部的字符串,每个字符的选择可能为:
①加入结果中;
②不加入结果中。
迭代结果的标记:
达到字符串数组中的最后一个。
代码:
/* 获取当前字符串对应位表示的二进制数 */
int getBin(strin