[leetcode 244] Shortest Word Distance II------------字典中两个字符串的最短距离
来源:互联网 发布:linux rc0.d 编辑:程序博客网 时间:2024/06/06 01:12
Question:
This is a follow up of Shortest Word Distance. The only difference is now you are given the list of words and your method will be called repeatedly many times with different parameters. How would you optimize it?
Design a class which receives a list of words in the constructor, and implements a method that takes two words word1 and word2 and return the shortest distance between these two words in the list.
For example,
Assume that words = ["practice", "makes", "perfect", "coding", "makes"]
.
Given word1 = "coding”
, word2 = "practice”
, return 3.
Given word1 = "makes"
, word2 = "coding"
, return 1.
这道题的意思是,实现一个类,和给定两个字符串,字典中某个字符串可能出现多次,求这两个给定字符串的最短距离。
实现字典类的时候,用无序容器map实现,并存没给字符串所在的所有位置,这样给定两个字符串的时候就可以知道这两个字符串在字典中的所有位置。
代码如下(转网上大神):
<span style="font-size:14px;">class WordDistance {public: WordDistance(vector<string> words) { int n = words.size(); for (int i = 0; i < n; i++) wordInd[words[i]].push_back(i); } int shortest(string word1, string word2) { vector<int> indexes1 = wordInd[word1]; vector<int> indexes2 = wordInd[word2]; int m = indexes1.size(), n = indexes2.size(); int i = 0, j = 0, dist = INT_MAX; while (i < m && j < n) { dist = min(dist, abs(indexes1[i] - indexes2[j])); if (indexes1[i] < indexes2[j]) i++; else j++; } return dist; }private: unordered_map<string, vector<int> > wordInd;};</span>
- [leetcode 244] Shortest Word Distance II------------字典中两个字符串的最短距离
- LeetCode 243. Shortest Word Distance(单词最短距离)
- LeetCode-243:Shortest Word Distance (单词最短距离)
- leetcode--Shortest Word Distance II
- Leetcode: Shortest Word Distance II
- LeetCode-Shortest Word Distance II
- LeetCode Shortest Word Distance II
- leetcode--Shortest Word Distance II
- LeetCode 题解(268) : Shortest Word Distance II
- LeetCode 244. Shortest Word Distance II
- LeetCode 244. Shortest Word Distance II
- Shortest Word Distance II
- Shortest Word Distance II
- Shortest Word Distance II
- leetcode--Shortest Word Distance
- Leetcode: Shortest Word Distance
- *LeetCode-Shortest Word Distance
- LeetCode Shortest Word Distance
- 11. 接口和抽象类区别
- jad 反编译的使用方法
- 生产者与消费者问题
- 获取字符串或数组元素
- Linux Shell 编程语法
- [leetcode 244] Shortest Word Distance II------------字典中两个字符串的最短距离
- 2016蓝桥杯假期任务之《打印十字图》
- android学习——activity实现动画切换
- 5. Longest Palindromic Substring
- 书屋(三):《浪潮之巅》品各大百年公司兴衰历程
- HDU 3274 City Planning [Ad Hoc]
- << >>
- 最长上升子序列、最长公共上升子序列
- 开始学习C++