이모티콘은 두 세미콜론 사이의 임의의 양수의 밑줄로 구성됩니다. 따라서 가능한 가장 짧은 이모티콘은 ;_;
입니다. ;__;
및 ;_____________;
문자열도 유효한 이모티콘입니다.무차별의 동적 프로그래밍 감소
주어진 문자열은 (;
, _
)입니다. 문제는 문자열을 하나 이상의 이모티콘으로 나눠서 가능한 나누기 수를 계산하는 것입니다. 각 이모티콘은 메시지의 하위 시퀀스 여야하며 메시지의 각 문자는 정확히 하나의 이모티콘에 속해야합니다. 서브 시퀀스는 인접하지 않아도됩니다. subsequence definition. n이 큰 경우
countDivision(string s){
//base cases
if(s.empty()) return 1;
if(s.length()<=3){
if(s.length()!=3) return 0;
return s[0]==';' && s[1]=='_' && s[2]==';';
}
result=0;
//subproblems
genrate all valid emocticon and remove it from s let it be w
result+=countDivision(w);
return result;
}
이 솔루션은 위의 쉽게 내가이 짐승을 변환하는 방식의 어떤 종류를 사용해야합니다 같은 100 시간 종료됩니다
내가 생각 접근 방식은 다음과 같이 재귀 적 방법을 작성하는 것입니다 다이나믹 프로그래밍 솔루션에 대한 강력한 해결책?
몇몇 예
1. ";_;;_____;" ans is 2
2. ";;;___;;;" ans is 36
Example 1.
";_;;_____;" Returns: 2
There are two ways to divide this string into two emoticons.
One looks as follows: ;_;|;_____; and the other looks like
this(rembember we can pick subsequence it need not be contigous): ;_ ;|; _____;
I는 (N^4) - 시간을 오 설명하고 (즉 쉽게 단지 O (N^3) 공간을 사용하여 개선 될 수있다) 동적 프로그래밍 솔루션 - 공간 것이다
당신은 어쩌면 하나 개의 입력과 예상 출력을 공유 할 수 없습니다 :
는 자바 스크립트 코드를 댓글? –
내가 이해한다면 ... ";;" 이전 계산 된 포인트를 기반으로 가능한 모든 방법으로 문자열을 분할하는 것보다? – Daniele
문자열의 모든 문자를 나누기에 사용해야합니까? – AnotherGeek