java 交错的两个字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 交错的两个字符串相关的知识,希望对你有一定的参考价值。

import java.io.*;
import java.util.*;

class Solution {
  public static void main(String[] args) {
    Solution solution =new Solution();
    String[] a = {
          null,
          "",
          "ABC",
          "A"
        };
    String[] b = {
          null,
          "",
          "ACB",
          "B"
        };
    for(int i=0;i< a.length;i++) {
      System.out.println("Input: " + a[i] + ", " + b[i] +
                       ", Result: " + solution.interleavings(a[i], b[i]));
    }
  }
  
  public Set<String> interleavings(String a, String b){
    Set<String> result = new HashSet<String>();
    if(a == null || b == null) {
      return result;
    }
    interleavingsRecur("",a,b,result);
    return result;
    
  }
   
  public void interleavingsRecur(String temp, String a, 
                              String b, Set<String> result){
    if(a.length() == 0 && b.length() == 0) {
      result.add(temp);
    }
    if(a.length() >0) {
      interleavingsRecur(temp + a.substring(0,1), a.substring(1), b, result);
    }
    if(b.length() > 0) {
      interleavingsRecur(temp + b.substring(0,1), a, b.substring(1), result);
    }    
  }  
  
}

以上是关于java 交错的两个字符串的主要内容,如果未能解决你的问题,请参考以下文章

交错两个字符串的最pythonic方法

如何交错或创建两个字符串的唯一排列(无递归)

交错01串

Leetcode No.97 交错字符串

[编程题] 交错01串 网易2018

[leetcode] 97. 交错字符串