leetcode - Distinct Subsequences
2013-03-28 21:49 张汉生 阅读(160) 评论(0) 编辑 收藏 举报题目描述:点击此处
1 class Solution { 2 public: 3 int numDistinct(string S, string T) { 4 // Start typing your C/C++ solution below 5 // DO NOT write int main() function 6 int tlen = T.length(); 7 int * tag = new int[tlen+1]; 8 int i, j; 9 for (i=0; i<=tlen; i++) 10 tag[i] = 0; 11 tag[0] = 1; 12 int slen = S.length(); 13 if (slen < tlen) 14 return 0; 15 for (i=0; i<slen; i++){ 16 char c = S.at(i); 17 j = i; 18 if (j>tlen-1) 19 j = tlen-1; 20 for (; j>=0; j--){ 21 if (c==T.at(j)) 22 tag[j+1] += tag[j]; 23 } 24 } 25 int rlt = tag[tlen]; 26 delete []tag; 27 return rlt; 28 } 29 };