c++ - 【LeetCode】Word Pattern
問題描述
我在 LeetCode 上練習 Word Pattern(題目連接點這里),寫的程序放在本地VS2008上跑如下實例:
pattern = 'abba', str = 'dog cat cat fish' should return false.
沒有問題,返回的是false,但是放在LeetCode 上提交,提示錯誤,錯誤如下:

代碼如下:
class Solution {public: bool wordPattern(string pattern, string str) {const int len = pattern.length();char * c = new char[len+1];strcpy(c, pattern.c_str() );char * arr[1024];int num = 0;char * pch;pch = strtok(c, ' ');while (pch != NULL){ arr[num++] = pch; pch = strtok(NULL, ' ');}vector<char> vecStr;vector<char *> vecPattern;for (int i = 0; i < num; ++i){ for (int j = 0; j < vecStr.size(); ++j) {if (vecStr[j] == str[i] && *(vecPattern[j]) != *(arr[i]) ){ return false;} } for (int j = 0; j < vecPattern.size(); ++j) {if (*(vecPattern[j]) == *(arr[i]) && vecStr[j] != str[i]){ return false;} } vecStr.push_back(str[i]); vecPattern.push_back(arr[i]);}return true; }};
求指教。
問題解答
回答1:我拿你的代碼運行了一下發現就是錯的呀。為什么呢,因為
pch = strtok(c, ' '); while (pch != NULL) {arr[num++] = pch;pch = strtok(NULL, ' '); }
這里你的c本來應該是str,你卻指向了pattern。
而且我覺得你寫到后面pattern和str可能在你腦子里已經亂掉了,你還得接著往下改。
相關文章:
1. javascript - 打算寫一個c++的node圖像處理模塊,有沒有推薦的c++圖片處理庫?2. java - 同步/異步與阻塞/非阻塞之間的差異具體是什么?3. html5 - 前端面試碰到了一個緩存數據的問題,來論壇上請教一下4. macos - 無法source activate python275. css - 移動端 盒子內加overflow-y:scroll后 字體會變大6. java - butterknife怎么綁定多個view7. css3 讓圖片變成灰色(filter),但針對IE11瀏覽器無效8. 運行python程序時出現“應用程序發生異常”的內存錯誤?9. android - Genymotion 模擬器可以做屏幕適配檢測嗎?10. python中如何計算t分布的值?

網公網安備