变体。上一题是WORD1和WORD2不同,这个是有可能相同。。
没想到什么巧办法,按部就班遍历分情况讨论。。
public class Solution
{
public int shortestWordDistance(String[] words, String word1, String word2)
{
int res = words.length;
int m = 0;
int n = 0;
boolean same = word1.equals(word2);
boolean found = false;
int i = 0;
while(i < words.length)
{
String s = words[i];
if (s.equals(word1) || s.equals(word2))
{
m = i;
break;
}
i++;
}
i++;
while(i < words.length)
{
String s = words[i];
if(same)
{
if(s.equals(word1))
{
res = Math.min(res,i-m);
m = i;
}
}
else
{
if (s.equals(word1) || s.equals(word2))
{
if(s.equals(words[m])) m = i;
else
{
res = Math.min(res,i-m);
m = i;
}
}
}
i++;
}
return res;
}
}
代码可能能压缩一下,不用写这么一大坨……