給你乙個字串 s 和乙個字串陣列 dictionary ,找出並返回 dictionary 中最長的字串,該字串可以通過刪除 s 中的某些字元得到。
如果答案不止乙個,返回長度最長且字母序最小的字串。如果答案不存在,則返回空字串。
import j**a.util.arrays;
import j**a.util.collections;
import j**a.util.comparator;
import j**a.util.list;
class solution
boolean dp = new boolean[str1.length() + 1][str2.length() + 1];
for (int i = 0; i <= str1.length(); ++i)
for (int i = 1; i <= str1.length(); ++i) else }}
return dp[str1.length()][str2.length()];
}public string findlongestword(string s, listdictionary)
collections.sort(dictionary, new comparator()
return integer.compare(o2.length(), o1.length());
}});
for (string str : dictionary)
}return "";
}}
import j**a.util.list;
class solution
int p1 = str1.length() - 1, p2 = str2.length() - 1;
while (p1 >= 0 && p2 >= 0) else
}return p2 == -1;
}public string findlongestword(string s, listdictionary)
string ans = "";
for (string str : dictionary) }}
return ans;
}}
524 通過刪除字母匹配到字典裡最長單詞
想到了先對整個陣列重新排序,長度小的在前,長度一樣的按字串字典序從小到大排序。之後考察每個字串就好了,找到乙個,當前長度的就都跳過,直接考察長度 1的字串。然而蛋疼的是我考察每個字串是否可以轉化為目標字串時用的是dfs。這題要求的是乙個字串a能轉化為字串b即可,而不是求a轉化為b有多少種方法。後者肯...
524 通過刪除字母匹配到字典裡最長單詞
想到了先對整個陣列重新排序,長度小的在前,長度一樣的按字串字典序從小到大排序。之後考察每個字串就好了,找到乙個,當前長度的就都跳過,直接考察長度 1的字串。然而蛋疼的是我考察每個字串是否可以轉化為目標字串時用的是dfs。這題要求的是乙個字串a能轉化為字串b即可,而不是求a轉化為b有多少種方法。後者肯...
100 通過zookeeper面試
1 zookeeper 的資料模型 zookeeper 的資料模型是什麼樣子呢?它很像資料結構當中的樹,也很像檔案系統的目錄。樹是由節點所組成,zookeeper 的資料儲存也同樣是基於節點,這種節點叫做 znode。但是,不同於樹的節點,znode 的引用方式是路徑引用,類似於檔案路徑 動物 倉鼠...