524 通過刪除字母匹配到字典裡最長單詞

2022-09-18 13:48:14 字數 1149 閱讀 5101

給你乙個字串 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 的引用方式是路徑引用,類似於檔案路徑 動物 倉鼠...