*LeetCode-Different Ways to Add Parentheses
연산자를 만날 때마다string 양쪽을 분리하여 각각list 두 개를 계산하고 이 두 개list 안의 결과는 이 기호 배열에 따라 조합하여 계산한다
마지막 코너 케이스는 괄호가 존재하지 않습니다 즉 목록이 비어 있습니다 직접string을 추가합니다
public class Solution {
public List<Integer> diffWaysToCompute(String input) {
List<Integer> list = new ArrayList<Integer> ();
if ( input == null || input.length() == 0 )
return list;
for ( int i = 0; i < input.length(); i ++ ){
if ( input.charAt(i) == '+' || input.charAt(i) == '-' || input.charAt(i) == '*' ){
List<Integer> l1 = diffWaysToCompute( input.substring( 0, i ) );
List<Integer> l2 = diffWaysToCompute( input.substring( i + 1 ) );
for ( int num1 : l1 ){
for ( int num2 : l2 ){
int res = 0;
if ( input.charAt(i) == '+' )
res = num1 + num2;
else if ( input.charAt(i) == '-')
res = num1 - num2;
else
res = num1 * num2;
list.add ( res );
}
}
}
}
if ( list.size () == 0 )
list.add ( Integer.parseInt(input) );
return list;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.