LeetCode290_290. Word のルール
1. 説明
パターン pattern と文字列 s が与えられた場合、s が同じパターンに従うかどうかを判断します。
ここでのフォローは完全一致を指します。たとえば、パターン内の各文字と文字列 s 内の空でない各単語の間には双方向の接続があります。
例 1:
输入: pattern = "abba", s = "dog cat cat dog"
输出: true
例 2:
输入:pattern = "abba", s = "dog cat cat fish"
输出: false
例 3:
输入: pattern = "aaaa", s = "dog cat cat dog"
输出: false
ヒント:
1 <= pattern.length <= 300
パターンには小文字の英字のみが含まれます
1 <= s.length <= 3000
s には小文字の英字のみが含まれ、「 」には
先頭または末尾のスペースが含まれません
s 内の各単語はスペースで区切られます別れた
2、解決策
方法 1:
1. strをスペースに応じて分割し、分割後の長さがパターンの長さと同じかどうかを判断し、一致しない場合は直接falseを返します。
2. キーが複数の値に対応する状況を判断するためのマップを定義します。
3. 値に複数のキーが対応する状況を判断するためのリストを定義します。
/**
* 290. Word Pattern
* 题意:字样,类似于同性异构体
* 思路: 1、将str按照空格切分,首先判断切分后的长度是否和pattern的长度一样,不一样直接返回false。
* 2、定义一个map判断一个key对应多个value的情况。
* 3、定义一个list判断多个key对应一个value的情况。
*/
//AC Your runtime beats 25.66 % of java submissions.
//33 / 33 test cases passed. Status: Accepted Runtime: 3 ms
public boolean wordPattern(String pattern, String str) {
boolean res = true;
//map判断一个key对应多个value的情况
Map<Character, String> map = new HashMap<Character, String>();
String[] strs = str.split(" ");
if (strs.length != pattern.length()) {
return false;
}
for (int i = 0; i < strs.length; i++) {
if (!map.containsKey(pattern.charAt(i))) {
map.put(pattern.charAt(i), strs[i]);
} else {
if (!map.get(pattern.charAt(i)).equals(strs[i])) {
res = false;
}
}
}
//定义一个list,通过list和map的大小来判断多个key对应一个value的情况
List<String> list = new ArrayList<String>();
for (Character key : map.keySet()) {
if (!list.contains(map.get(key))) {
list.add(map.get(key));
}
}
if (list.size() != map.size()) {
res = false;
}
return res;
}
LeetCode 231. 2 の累乗
LeetCode 234. 回文リンク リスト
LeetCode 237. リンク リスト内のノードの削除
LeetCode 242. 有効なアナグラム
LeetCode 257. 二分木のすべてのパス
LeetCode 258. ビットの追加
LeetCode 263. 醜い数字
LeetCode 268. 欠落した数字
LeetCode 283 . ゼロの移動
LeetCode 287. 繰り返される数字の検索
LeetCode 290. 単語パターン
LeetCode 292. Nim ゲーム
免責事項:
トピックの著作権は元の作成者に属します。記事内のコードおよび関連する記述は私の理解に基づいて私が書いたものです、記事内の関連する写真は私が実践した際のスクリーンショットおよび関連技術に対応する写真です。異議がある場合は連絡して削除してください。ありがたい。転載は出典を明記してください、よろしくお願いします。
投稿者:luoyepiaoxue2014
ステーション B: https://space.bilibili.com/1523287361クリックしてリンクを開きます
Weibo: http://weibo.com/luoyepiaoxue2014クリックしてリンクを開きます