【发布时间】:2016-01-24 05:06:08
【问题描述】:
我不得不做一个创建邻接矩阵的问题,它找到了用户输入的字符串之间的最短路径。如果字符串之间的最短路径为 1,我已经读取了充满字符串的数据文件并构建了邻接矩阵。如果最短路径是 2、3、4、5 等,我对如何执行此操作感到困惑。判断字符串是否连接的方法是第一个单词最后三个字符、两个字符或最后一个字符是否与第二个匹配单词的前三个字符、前两个字符或前三个字符。
我得到的一个例子是“每天”和“白天”,因为最后三个和前三个匹配。
如果最后两个和前两个匹配,则示例是“兄弟”和“橡皮擦”。
如果最后一个字符和第一个字符匹配,例如“scorpion”和“night”。
int i,j;
String[] s = new String[sizOfFile];
int[][] a = new int[sizeOfFile][sizeOfFile];
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if((s[i].charAt(s[i].length()-3) == s[j].charAt(0) && s[i].charAt(s[i].length()-2) == s[j].charAt(1) && s [i].charAt(s[i].length()-1) == s[j].charAt(2)))
{
a[i][j]=1;
}
else if(s[i].charAt(s[i].length()-1) == s[j].charAt(1) && s[i].charAt(s[i].length()-2) == s[j].charAt(0))
{
a[i][j]=1;
}
else if(s[i].charAt(s[i].length()-1) == s[j].charAt(0))
{
a[i][j]=1;
}
else
{
a[i][j]=0;
}
//Prints adjacency matrix
}
}
【问题讨论】:
-
听起来这是一个 Levenshtein 距离问题。
标签: java shortest-path adjacency-matrix