国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

c++ - 【LeetCode】Word Pattern

瀏覽:140日期:2022-10-13 09:35:21

問題描述

我在 LeetCode 上練習 Word Pattern(題目連接點這里),寫的程序放在本地VS2008上跑如下實例:

pattern = 'abba', str = 'dog cat cat fish' should return false.

沒有問題,返回的是false,但是放在LeetCode 上提交,提示錯誤,錯誤如下:

c++ - 【LeetCode】Word Pattern

代碼如下:

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:

我拿你的代碼運行了一下發(fā)現(xiàn)就是錯的呀。為什么呢,因為

pch = strtok(c, ' '); while (pch != NULL) {arr[num++] = pch;pch = strtok(NULL, ' '); }

這里你的c本來應該是str,你卻指向了pattern。

而且我覺得你寫到后面pattern和str可能在你腦子里已經(jīng)亂掉了,你還得接著往下改。

標簽: word
相關(guān)文章:
主站蜘蛛池模板: 富源县| 吉林省| 沂水县| 宁安市| 柞水县| 牙克石市| 准格尔旗| 北流市| 凤冈县| 呼伦贝尔市| 富锦市| 新乡县| 宁津县| 永宁县| 营口市| 揭阳市| 梓潼县| 舟山市| 永靖县| 桃园市| 莲花县| 盱眙县| 嘉峪关市| 卫辉市| 洪泽县| 抚顺县| 辉南县| 南城县| 慈溪市| 天水市| 益阳市| 绿春县| 勃利县| 张家港市| 左云县| 武定县| 寿阳县| 永寿县| 靖宇县| 廊坊市| 遂昌县|