dimanche 28 décembre 2014

BIT is not showing the correct value


I am having a String , i am creating a BIT of String based on the frequency of the element present String:



abcdbcaab


Code:



class Test{
static int[][] dp;

public static void update(int i , int val ,int[] dpp){

while(i<=100000){

dpp[i]+=val;
i+= (i&-i);
}


}

public static int value(int i ,int[] dp){

int ans =0;

while(i>0){
ans+=dp[i];
i-= (i&i);
}
return ans;
}


public static void main(String args[] ) throws IOException {

Scanner in = new Scanner(new InputStreamReader(System.in));

dp = new int[27][1000001];
String s = in.next();
for(int i=0;i<s.length();i++){
update(i+1,1,dp[s.charAt(i)-'a']);

}
System.out.println(dp[0][7]); // Should show 2 as the frequency of 'a' at 7 position is 2
}
}


Where i am doing wrong . i could not get it but dp[0][8] is showing me 3


Please Help i could not figure it out where i have commit mistake





Aucun commentaire:

Enregistrer un commentaire