讨论/题目交流/同样输入,执行正确,提交报错,为什么啊?/
同样输入,执行正确,提交报错,为什么啊?

做第5题:最长回文子串时,同样是输入"cbbd",执行时正确,提交时就报错,为什么啊?

捕获.PNG

以下是源代码:

class Solution {
public:
    string longestPalindrome(string s) {
        int n=s.size(),i,j,m;
        string s1;
        for(m=n-1;m>=0;m--){
            for(i=0;i+m<=n-1;i++){
                for(j=0;i+j<i+m-j;j++){
                    if(s[i+j]!=s[i+m-j])
                    break;
                }
                if(i+j>=i+m-j){
                    for(j=0;j<=m;j++)
                        s1[j]=s[i+j];
                    break;
                }
            }
            if(j>m)
            break;
        }
       return s1;
    }
};

昨天刚碰到,我用的是golang,在回溯时需要一个全局变量result。。。。后来发现是全局变量的问题,原因如下:

  1. leetcode的评测模式是一个程序,也就是某些变量只会初始化一次,比如我这边用的全局变量result。导致该容器(result)会保留上次运行的答案。
  2. leetcode运行模式只会运行一次,所以没上述问题。

我当时的解决方案是将全局变量在它给出的函数中又清空一遍

所以题主可以看看是代码中是否有类似于全局变量的影响了评测结果。

展开全部 5 讨论