c++ - 【LeetCode】Word Pattern
怪我咯
怪我咯 2017-04-17 13:05:28
0
1
602

我在 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 vecStr; vector 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可能在你脑子里已经乱掉了,你还得接着往下改。

    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿
    회사 소개 부인 성명 Sitemap
    PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!