これは、最長回文サブストリングを見つけるためにCodeLeetからの問題の声明でした。なぜVisual Studioは配列サイズの変数をサポートしていませんか?
class Solution {
public:
string longestPalindrome(string s) {
int len = s.size();
int P[len][len];
memset(P, 0, len*len*sizeof(int));
int maxL=0, start=0, end=0;
for(int i =0; i< s.size(); i++){
for(int j =0; j<i; j++){
P[j][i] = (s[j] == s[i] && (i-j<2 || P[j+1][i-1]));
if(P[j][i] && maxL < (i-j+1))
{
maxL = i-j+1;
start = j;
end = i;
}
}
P[i][i] =1;
}
return s.substr(start, end-start +1);
}
};
しかし、Visual Studioでの関数と同じことを書く:このソリューションが動作するcodeleetインターフェイスで
string User::longestPalindromeStr(string s) {
int len = s.size();
int P[len][len];
memset(P, 0, len*len * sizeof(int));
int maxL = 0, start = 0, end = 0;
for (int i = 0; i< s.size(); i++)
{
for (int j = 0; j<i; j++)
{
P[j][i] = (s[j] == s[i] && (i - j<2 || P[j + 1][i - 1]));
if (P[j][i] && maxL < (i - j + 1))
{
maxL = i - j + 1;
start = j;
end = i;
}
}
P[i][i] = 1;
}
return s.substr(start, end - start + 1);
}
それがlen変数のために言う:式が持っている必要があります一定の値?それはVIsualスタジオideといくつかの問題ですか?これをどうすれば解決できますか?
[可変長配列のC++で可能な複製](http://stackoverflow.com/questions/1887097/variable-length-arrays-in-c) –