欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

领扣LintCode算法问题答案-277. 单词间距

程序员文章站 2022-07-15 12:14:47
...

领扣LintCode算法问题答案-277. 单词间距

277. 单词间距

给出一系列单词 words,以及两个不同的单词 wordA 和 wordB,请找出最近的两个 wordA 和 wordB 的间距。
如果 words 中不存在 wordA 或 wordB,那么返回 -1−1。

样例 1:

输入:
[“hello”,“world”,“say”,“hello”]
“hello”
“world”
输出:
1
样例中,第一个 “hello” 和第一个 “world” 的间距为 11,
但第一个 “world” 和第二个 “hello” 的间距为 22, 所以最后的答案应该是 11.

public class Solution {
    /**
     * @param words: the words given.
     * @param wordA: the first word you need to find.
     * @param wordB: the second word you need to find.
     * @return: return the spacing of the closest wordA and wordB.
     */
    public int wordSpacing(List<String> words, String wordA, String wordB) {
        // write your code here.
        int min = -1;

        int aIndex = -1;
        int bIndex = -1;
        for (int i = 0; i < words.size(); i++) {
            String word = words.get(i);
            if (word.equals(wordA)) {
                aIndex = i;
                if (bIndex > -1) {
                    if (min != -1) {
                        min = Math.min(min, aIndex - bIndex);
                    } else {
                        min = aIndex - bIndex;
                    }
                }
            } else if (word.equals(wordB)) {
                bIndex = i;
                if (aIndex > -1) {
                    if (min != -1) {
                        min = Math.min(min, bIndex - aIndex);
                    } else {
                        min = bIndex - aIndex;
                    }
                }
            }
        }

        return min;
    }
}

原题链接点这里

鸣谢

非常感谢你愿意花时间阅读本文章,本人水平有限,如果有什么说的不对的地方,请指正。
欢迎各位留言讨论,希望小伙伴们都能每天进步一点点。

相关标签: 算法 算法