读书人

一路算法题

发布时间: 2012-11-10 10:48:51 作者: rapoo

一道算法题

?

public class CountAllPossible{/** * @param args */public static void main(String[] args){// TODO Auto-generated method stubint sum=countAllPossible("ABA");System.out.println(sum);}public static int countAllPossible(String str){return count(str,0,1);}public static int count(String subStr,int preAlphabetPosition,int allPossiblePosition){if(subStr.charAt(0)!='A'&&subStr.charAt(0)!='B')throw new IllegalArgumentException();int sum=0;if(subStr.charAt(0)=='A'){for (int index = 0; index <= preAlphabetPosition; index++){if(subStr.length()==1){sum+=1;//reach the end }else{sum+=count(subStr.substring(1),index,allPossiblePosition+1);}}}else//='B'{for(int index=preAlphabetPosition+1;index<=allPossiblePosition;index++){if(subStr.length()==1)//reach the end{sum+=1;}else{sum+=count(subStr.substring(1),index,allPossiblePosition+1);}}}return sum;}}?

?

读书人网 >编程

热点推荐