[Lint Code] Split String
문제 : 문자열이 주어졌을 때 한 개의 문자 혹은 두 개의 문자로 구성된 문자열들로 구성할 수 있는 전체 경우를 구하시오
[예시]
Input -> "123"Output -> [["1", "2", "3"], ["12", "3"], ["1", "23"]]
[풀이]
이 문제는 [start:start+1]과 [start:start+2]의 경우를 DFS를 이용하여 모든 경우의 수를 탐색하여 풀면 된다.
[코드]
class Solution:@param: : a string to be split@return: all possible split string array"""if(end == len(s)):for i in range(len(row)):if end+1 <= len(s):row.append(s[end:end+1])self.func(s, end, end+1, row, matrix)# s[end:end+1]에 값을 row 배열에서 poprow.pop(len(row)-1)if end+2 <= len(s):row.append(s[end:end+2])self.func(s, end, end+2, row, matrix)if len(s) >= 1:self.func(s, 0, 1, row, matrix)if len(s) >= 2:row.append(s[0:2])self.func(s, 0, 2, row, matrix)