题目
稀疏数组搜索。有个排好序的字符串数组,其中散布着一些空字符串,编写一种方法,找出给定字符串的位置。
示例
输入: words = [“at”, “”, “”, “”, “ball”, “”, “”, “car”, “”, “”,“dad”, “”, “”], s = “ta”
输出:-1
说明: 不存在返回-1。
输入:words = [“at”, “”, “”, “”, “ball”, “”, “”, “car”, “”, “”,“dad”, “”, “”], s = “ball”
输出:4
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/sparse-array-search-lcci
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
方法1:哈希表
Java实现
class Solution {
public int findString(String[] words, String s) {
Map<String, Integer> map = new HashMap<>();
for (int i = 0; i < words.length; i++) {
if (words[i] != "") {
map.put(words[i], i);
}
}
for (String key : map.keySet()) {
if (s.equals(key)) return map.get(key);
}
return -1;
}
}