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. vue.js - android环境下在vue中引入vux.js 报错。2. 无法为JSP编译类:无法解析类型java.util.Map $ Entry。从所需的.class文件间接引用它3. javascript - 一排三个框,各个框的间距是15px,距离外面的白框间距也是15px,这个css怎么写?4. java - springboot 修改默认静态资源文件读取路径5. javascript - js,有几行代码不太明白?6. php - 问个类型转化的问题,float类型转int,觉得可能会出问题,但结果并没有?7. javascript - 怎样优化网页打开速度呢?8. 用python3的smtplib库发邮件一直返回无法发送邮件提示,是什么原因?9. 第6行的$_GET[’F’]没有定义啊?求问一下是什么意思?10. mysql int(M) M是啥意思,最大是多少,多指教

网公网安备