src/controller/WebSearchEngine.java
//Uses Edit distance to compare nearest distance between keyword and similar patterns obtained from regex
Uses Edit distance to compare nearest distance between keyword and similar patterns obtained from regex
Uses Edit distance to compare nearest distance between keyword and similar patterns obtained from regex
public static int editDistance(String word1, String word2) {
		int len1 = word1.length();
		int len2 = word2.length();
		int[][] dp = new int[len1 + 1][len2 + 1];
		for (int i = 0; i <= len1; i++) {
			dp[i][0] = i;
		}
		for (int j = 0; j <= len2; j++) {
			dp[0][j] = j;
		}
		for (int i = 0; i < len1; i++) {
			char c1 = word1.charAt(i);
			for (int j = 0; j < len2; j++) {
				char c2 = word2.charAt(j);
				if (c1 == c2) {
					dp[i + 1][j + 1] = dp[i][j];
				} else {
					int replace = dp[i][j] + 1;
					int insert = dp[i][j + 1] + 1;
					int delete = dp[i + 1][j] + 1;
					int min = replace > insert ? insert : replace;
					min = delete > min ? min : delete;
					dp[i + 1][j + 1] = min;
				}
			}
		}
		return dp[len1][len2];
	}
public static int editDistance ( String word1 , String word2 ) { int len1 = word1 . length ( ) ; int len2 = word2 . length ( ) ; int [ ] [ ] dp = new int [ len1 + 1 ] [ len2 + 1 ] ; for ( int i = 0 ; i <= len1 ; i ++ ) { dp [ i ] [ 0 ] = i ; } for ( int j = 0 ; j <= len2 ; j ++ ) { dp [ 0 ] [ j ] = j ; } for ( int i = 0 ; i < len1 ; i ++ ) { char c1 = word1 . charAt ( i ) ; for ( int j = 0 ; j < len2 ; j ++ ) { char c2 = word2 . charAt ( j ) ; if ( c1 == c2 ) { dp [ i + 1 ] [ j + 1 ] = dp [ i ] [ j ] ; } else { int replace = dp [ i ] [ j ] + 1 ; int insert = dp [ i ] [ j + 1 ] + 1 ; int delete = dp [ i + 1 ] [ j ] + 1 ; int min = replace > insert ? insert : replace ; min = delete > min ? min : delete ; dp [ i + 1 ] [ j + 1 ] = min ; } } } return dp [ len1 ] [ len2 ] ; }
Uses Edit distance to compare nearest distance between keyword and similar patterns obtained from regex
Uses Edit distance to compare nearest distance between keyword and similar patterns obtained from regex
// len1+1, len2+1, because finally return dp[len1][len2] //iterate though, and check last char //if last two chars equal //update dp value for +1 length