程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> java-字符串交錯組成------------Java

java-字符串交錯組成------------Java

編輯:編程綜合問答
字符串交錯組成------------Java

對於三個字符串A,B,C。我們稱C由A和B交錯組成當且僅當C包含且僅包含A,B中所有字符,且對應的順序不改變。請編寫一個高效算法,判斷C串是否由A和B交錯組成。
給定三個字符串A,B和C,及他們的長度。請返回一個bool值,代表C是否由A和B交錯組成。保證三個串的長度均小於等於100。
測試樣例:
"ABC",3,"12C",3,"A12BCC",6
返回:true

最佳回答:


 import java.util.*;

public class Mixture {
    public boolean chkMixture(String A, int n, String B, int m, String C, int v) {
        // write code here
        return chkMixture(A,B,C,A.length()-1,B.length()-1,C.length()-1);
    }
    public static boolean chkMixture(String A,String B, String C,int i,int j,int k){
        if(k == 0){
            return true;
        }
        if(i == 0){
            if(B.charAt(j) == C.charAt(k)){
                return chkMixture(A,B,C,0,j-1,k-1);
            }else{
                return false;
            }
        }
        if(j == 0){
            if(A.charAt(i) == C.charAt(k)){
                return chkMixture(A,B,C,i-1,0,k-1);
            }else{
                return false;
            }
        }
        boolean res1 = false;
        boolean res2 = false;
        if(A.charAt(i) == C.charAt(k)){
            res1 = chkMixture(A,B,C,i-1,j,k-1);
        }
        if(B.charAt(j) == C.charAt(k)){
            res2 = chkMixture(A,B,C,i,j-1,k-1);
        }
        return res1||res2;
    }
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved