字符串编辑距离 public int dynamic(String command,String input) { int dp[][] = new int [command.length()+1][input.length()+1]; dp[0][0]=0; int i,j; for(i=1;i<=command.length();i++) { dp[i][0]=i; } for(j=1;j<=input.length();j++) { dp[0][j]=j; } int f; for(i=1;i<=command.length();i++) { for(j=1;j<=input.length();j++) { if(command.charAt(i-1)==input.charAt(j-1)) f=0; else f=1; dp[i][j]=Math.min(dp[i][j-1]+1, Math.min(dp[i-1][j]+1, dp[i-1][j-1]+ f)); } } return dp[command.length()-1][input.length()-1]; } public String didYouMean(String[] commands, String input) { // write code here int n[] = new int[commands.length]; int min = 65535; int mini=0; for(int i=0;i<commands.length;i++) { n[i]=dynamic(commands[i],input); if(n[i]<min) { min=n[i]; mini=i; } } return commands[mini]; }
点赞 1

相关推荐

点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务