I have an index that is encoded as such:

Code :

int idx = x << 11 | z << 7 | y;

my question is: can i go from idx back to x, z, y?

If so, how?

If not.. crap. ]]>

Problem: Given a string S and a string T, count the number of distinct subsequences of T in S.

A subsequence of a string is a new string which is formed from the original string by deleting some (can be none) of the characters without disturbing the relative positions of the remaining characters. (ie, "ACE" is a subsequence of "ABCDE" while "AEC" is not).

Here is an example:

S = "rabbbit", T = "rabbit"

Return 3.

Solution:

public int numDistincts(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()];

} ]]>

the formula given to me is 1^k+2^k+...+n^k.

my coding as follows:

Code java:

public int sumPowTo (int n, int k)
{
if ( k == 0)
{
return 1;
}
else if ( k == 1)
{
return n;
}
else
{
return (n * sumPowTo(n,--k)) + (sumPowTo(n--,--k)) ;
}
}

for example int sumPowTo(4,2) = 30

but i get 28 ]]>

I am currently studying this algorithm...

Can anyone please give me a simple code in doing this algorithm in Java?

Thanks in advance :) ]]>