distinct sequence Google
来源:互联网 发布:贝叶斯网络 编辑:程序博客网 时间:2024/05/16 08:35
leetcode ,暴力解法dfs, 双指针,不行
public int numDistinct(String s, String t) { return numDistinctHelper(s,t,0,0); } public int numDistinctHelper(String s, String t, int si, int ti){ if(ti == t.length()) { return 1; } if(si >= s.length()){ return 0; } int count = 0; for(int i = si; i < s.length(); i++){ if(s.charAt(i) == t.charAt(ti)){ count += numDistinctHelper(s, t, i+1, ti+1); } } return count; }
A Clever way to solve it: (Dynamic Programming)
solution: Let W(i, j) stand for the number of subsequences of S(0, i) equals to T(0, j). If S.charAt(i) == T.charAt(j), W(i, j) = W(i-1, j-1) + W(i-1,j); Otherwise, W(i, j) = W(i-1,j).
public int numDistinct(String S, String T) { int[][] table = new int[S.length() + 1][T.length() + 1]; for (int i = 0; i < S.length(); i++) table[i][0] = 1; for (int i = 1; i <= S.length(); i++) { for (int j = 1; j <= T.length(); j++) { if (S.charAt(i - 1) == T.charAt(j - 1)) { table[i][j] += table[i - 1][j] + table[i - 1][j - 1]; } else { table[i][j] += table[i - 1][j]; } } } return table[S.length()][T.length()]; }
0 0
- distinct sequence Google
- Longest Consecutive Sequence,Distinct Subsequences,Interleaving String,Scramble String
- distinct
- Distinct
- distinct
- distinct
- distinct
- distinct
- distinct
- distinct
- distinct
- distinct
- distinct
- DISTINCT
- distinct
- distinct
- distinct
- Find the longest substring with k unique distinct characters in a given string (Google)
- UITouch 触摸事件处理(实例)
- Python日积月累之isdigit()
- C++的头文件
- 一些疑问
- 初入宝地!相见恨晚!
- distinct sequence Google
- 今天我的博客正式开通了
- 关于大型javaee项目下的空指针异常
- 快速排序
- 多媒体之播放音乐——MediaPlayer
- 怎样不重装修复windows 8.1系统文件
- Android详细的对话框AlertDialog.Builder使用方法
- UVa 1347:Tour(DP)
- rsync+sersync2多个web网站同步