gpt4 book ai didi

c++ - 反向功能超出了我的cpp程序的范围

转载 作者:行者123 更新时间:2023-12-02 10:00:44 25 4
gpt4 key购买 nike

#include <iostream>
#include <bits/stdc++.h>
#include <cstring>
using namespace std;

int LCS(string x, string y, int n, int m)
{
int t[n + 1][m + 1];
for (int i = 0; i <= n; i++)
for (int j = 0; j <= m; j++)
{
if (i == 0 || j == 0)
t[i][j] = 0;
}
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
{
if (x[i - 1] == y[j - 1])
t[i][j] = 1 + t[i - 1][j - 1];
else
t[i][j] = max(t[i - 1][j], t[i][j - 1]);
}
return t[n][m];
}

int main()
{
string x;
string y = reverse(x.begin(), x.end());
cin >> x;
cout >> LCS(x, y, x.length(), y.length());
return 0;
}

op shows that the C:\Users\sagar\Videos\cpp_work\longest pallindromic subsequence LPA\main.cpp|29|error: conversion from 'void' to non-scalar type 'std::string' {aka 'std::__cxx11::basic_string<char>'} requested|

最佳答案

您应该先要求输入字符串,然后再反转它,cin >> x;应该在使用std::reverse之前,因为它是空的。
这条线

cout>>LCS(x,y,x.length(),y.length());
有错字,应该是 cout << ...std::reverse不返回反转的字符串,而是将其反转到位,您不能将其分配给另一个 std::string。这是您显示的错误的来源。
字符串 x将被反转。
您可能想要类似:
string x;
string y;
cin >> x; //input x
y = x; //make a copy of x
reverse(y.begin(), y.end()); // reverse y
cout << LCS(x, y, x.length(), y.length());
其他说明:
C++标准不允许使用可变长度数组 int t[n + 1][m + 1]; is not valid C++,尽管某些编译器允许使用它。
using namespace std; is not recommended
As is not #include <bits/stdc++.h>

关于c++ - 反向功能超出了我的cpp程序的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62673816/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com