日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode 291. 单词规律 II(回溯)

發(fā)布時(shí)間:2024/7/5 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 291. 单词规律 II(回溯) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

    • 1. 題目
    • 2. 解題

1. 題目

給你一種規(guī)律 pattern 和一個(gè)字符串 str,請你判斷 str 是否遵循其相同的規(guī)律。

這里我們指的是 完全遵循,例如 pattern 里的每個(gè)字母和字符串 str 中每個(gè) 非空 單詞之間,存在著雙向連接的對應(yīng)規(guī)律。

示例1: 輸入: pattern = "abab", str = "redblueredblue" 輸出: true示例2: 輸入: pattern = "aaaa", str = "asdasdasdasd" 輸出: true示例3: 輸入: pattern = "aabb", str = "xyzabcxzyabc" 輸出: false提示: 你可以默認(rèn) pattern 和 str 都只會包含小寫字母。

來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/word-pattern-ii
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。

2. 解題

class Solution {unordered_map<char, string> m;unordered_map<string, char> str_char;bool match = false; public:bool wordPatternMatch(string pattern, string str) {dfs(pattern, str, 0, 0);return match;}void dfs(string& pattern, string& str, int i, int j){if((i < pattern.size() && j >= str.size())|| (i >= pattern.size() && j < str.size()) || match)return;if(i == pattern.size() && j == str.size()){match = true;return;}if(!m.count(pattern[i])){string val;for(int k = 1; k <= str.size()-j; ++k)//該字符往后匹配多少個(gè)字符{val = str.substr(j, k);if(str_char.count(val) && str_char[val] != pattern[i])//"ab","aa"continue;m[pattern[i]] = val;str_char[val] = pattern[i];dfs(pattern, str, i+1, j+k);m.erase(pattern[i]);str_char.erase(val);}}else{string val = m[pattern[i]];int n = val.size();if(str.substr(j, n) != val)return;dfs(pattern, str, i+1, j+n);}} };

628 ms 52.5 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

長按或掃碼關(guān)注我的公眾號(Michael阿明),一起加油、一起學(xué)習(xí)進(jìn)步!

總結(jié)

以上是生活随笔為你收集整理的LeetCode 291. 单词规律 II(回溯)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。