Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.InputStreamReader;
- public class Solution {
- public static final int MOD = (int)1e9 + 7;
- public static long memo[][];
- public static void main(String[] args) throws Exception {
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- String[] parts = br.readLine().trim().split(" ");
- String str1 = parts[0];
- String str2 = parts[1];
- memo = new long[str1.length() + 1][str2.length() + 1];
- System.out.println(solve(str1,str2));
- }
- public static long solve(String str1, String str2){
- // compute and return answer here
- if(str1.length() > 0 && str2.length() == 0)
- return 1;
- if(str1.length() == 0 && str2.length() > 0)
- return 1;
- if(str1.length() == 0 && str2.length() == 0)
- return 1;
- if(memo[str1.length()][str2.length()] == 0)
- {
- long ans = 0;
- ans = (solve(str1.substring(0, str1.length() - 1), str2) + solve(str1.substring(0, str1.length() - 1), str2.substring(0, str2.length() - 1)) + solve(str1, str2.substring(0, str2.length() - 1)))%MOD;
- memo[str1.length()][str2.length()] = ans;
- }
- return memo[str1.length()][str2.length()];
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement