1. 程式人生 > >Word Pattern問題及解法

Word Pattern問題及解法

問題描述:

Given apatternand a stringstr, find ifstrfollows the same pattern.

Herefollowmeans a full match, such that there is a bijection between a letter inpatternand anon-emptyword instr.

示例:
  1. pattern ="abba", str ="dog cat cat dog"should return true.
  2. pattern ="abba", str ="dog cat cat fish"should return false.
  3. pattern ="aaaa", str ="dog cat cat dog"should return false.
  4. pattern ="abba", str ="dog dog dog dog"should return false.
問題分析:

利用hashtable,將pattern中的每個字元對映成int,str的每個單詞同樣也對映成int,兩者對比,若有對映不相同的,即視為不匹配。

過程詳見程式碼:

class Solution {
public:
    bool wordPattern(string pattern, string str) {
        map<char,int> p2i;
        map<string,int> w2i;
        istringstream in(str);
        int i = 0, n = pattern.size();
        for(string word; in >> word; i++)
        {
        	if(i == n || p2i[pattern[i]] != w2i[word]) return false;
        	p2i[pattern[i]] = w2i[word] = i + 1;
		}
		return i == n;
    }
};


相關推薦

Word Pattern問題解法

問題描述: Given apatternand a stringstr, find ifstrfollows the same pattern. Herefollowmeans a full ma

LeetCode 290 Word Pattern(單詞模式)(istringstream、vector、map)(*)

hashmap ray min art rdp blog view popu lan 翻譯 給定一個模式,和一個字符串str。返回str是否符合同樣的模式。 這裏的符合意味著全然的匹配,所以這是一個一對多的映射,在pattern中是一個字母。在str

[leetcode-290-Word Pattern]

class notes als tps solution urn str 0ms tor Given a pattern and a string str, find if str follows the same pattern. Here follow means a

[LeetCode] Word Pattern

tco logs sum pub same char cas 三種 false Given a pattern and a string str, find if str follows the same pattern. Here follow means a full

【leetcode】290. Word Pattern

dpa mage split tco 兩個 true lse div att 題目如下: 解題思路:本題的關鍵是pattern和word之間必須是一對一的關系。因此需要建立pattern->word和word->pattern兩種映射,這兩種映射可用兩個字典分

290. Word Pattern

bool 訪問 匹配 span nta 否則 map == 字符 問題描述: Given a pattern and a string str, find if str follows the same pattern. Here follow means a full m

LeetCode 205. Isomorphic Strings; 290. Word Pattern; 890. Find and Replace Pattern

string lse cto return 建立 flag 一次 else leetcode 這幾道題都是pattern的題目, Isomorphic Strings 和 Word Pattern 是完全一樣的問題,Find and Replace Pattern 本質也一

[LeetCode] 290. Word Pattern 單詞模式

java contains tween tool link mapping find ger n) Given a pattern and a string str, find if str follows the same pattern. Here follow

[leetcode]290.Word Pattern

contain [] fish nsvalue split als amp 代碼 and 題目 Given a pattern and a string str, find if str follows the same pattern. Here follow means

leetcode:(290) Word Pattern(java)

package LeetCode_HashTable; /** * 題目: * Given a pattern and a string str, find if str follows the same pattern. * Here follow means a fu

[Leetcode ]290. Word Pattern

Word Pattern Easy Given a pattern and a string str, find if str follows the same pattern. Here follow means a full match, such that the

margin合併與塌陷BUG解法

其實css也不是極其完善的,其中也存在著或多或少的bug,有些我們可能從來不會遇到,有些我們可能會經常遇到,這次介紹的兩個bug是屬於cssbug中的很經典的兩個bug——margin合併與margin塌陷問題。 margin合併現象 • 我們現在寫兩個span標籤,並且給它們兩個分別

動態規劃的一些題目解法

1、假設有幾種硬幣,如1、3、5,並且數量無限。請找出能夠組成某個數目的找零所使用最少的硬幣數。  解法: #include<stdio.h> int sum=0; void Min(int n) { if(n<1) Sum+=0; else if(n==

stop word理解超全的停用詞表

停用詞過濾,是文字分析中一個預處理方法。它的功能是過濾分詞結果中的噪聲(例如:的、是、啊等) 停用詞是指在資訊檢索中,為節省儲存空間和提高搜尋效率,在處理自然語言資料(或文字)之前或之後會自動過濾掉某些字或詞,這些字或詞即被稱為Stop Words(停用詞)。這些停用詞都是

南陽理工ACM:噴水裝置(一)題目解法

描述 現有一塊草坪,長為20米,寬為2米,要在橫中心線上放置半徑為Ri的噴水裝置,每個噴水裝置的效果都會讓以它為中心的半徑為實數Ri(0<Ri<15)的圓被溼潤,這有充足的噴水裝置i(1<i<600)個,並且一定能把草坪全部溼潤,你要做的是:選擇儘量

Word Pattern(leetcode290)

Given a pattern and a string str, find if str follows the same pattern. Here follow means a full match, such that there

LeetCode演算法題-Word Pattern(Java實現)

這是悅樂書的第202次更新,第212篇原創 01 看題和準備 今天介紹的是LeetCode演算法題中Easy級別的第68題(順位題號是290)。給定一個模式和一個字串str,找到str是否完全匹配該模式。完全匹配是指在模式中的字母和str中的非空單詞之間存在一一對應的關係。例如: 輸入:pattern

leetcode Word Pattern

leetcode Word Pattern 題目:https://leetcode.com/problems/word-pattern/ 解題思路:建立一個map,建立字元與字串之間的意義對映 直接返回false的情況: 1.鍵存在,值不同。 2.鍵不存在,值存在 3.鍵不存在,

css之word-breakword-wrap(overflow-wrap)

目錄 一、介紹 參考 一、介紹 今天學習markdown時,遇到了一個概念,“hard-wrapped”,然後網上搜索,發現一堆名詞,如:line break、word wrapping、word wrap、line wrap???啥東東?頭都

LeetCode刷題Easy篇Word Pattern

題目 Given a pattern and a string str, find if str follows the same pattern. Here follow means a full match, such