getline输入问题。

@浪里小白龙 2018-10-30 08:24:34

#include <iostream>
#include <algorithm>
#include <string>
using namespace std;

int main()
{
int dp[1001][1001];
string s;
getline(cin,s);
string t = s;
reverse(t.begin(), t.end());

int n = s.length(), m = t.length();
for (int i = 0; i<n; i++) {
for (int j = 0; j<m; j++) {
if (s[i] == t[j]) {
dp[i + 1][j + 1] = dp[i][j] + 1;
}
else {
dp[i + 1][j + 1] = max(dp[i][j + 1], dp[i + 1][j]);
}
}
}
printf("%d", dp[n][m]);
return 0;
}

getline(cin,s)为什么不让输入呢?直接就是下面这样了。
...全文
116 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
@浪里小白龙 2018-11-02
  • 打赏
  • 举报
回复
实在是不好给分,分不开,谢谢各位大佬帮助
自信男孩 2018-11-01
  • 打赏
  • 举报
回复
在Linux下跑测你的代码没问题。不过int dp[1001][1001];这样定义在函数内就是局部变量,由于局部变量是在栈上申请空间,我们都知道栈空间相对是很少的资源,因此不建议在栈上申请这么大的内存,可以考虑在堆上(new/delete)或数据段(全局/静态)申请。

BlueDoorZz 2018-10-31
  • 打赏
  • 举报
回复
#include <iostream> #include <algorithm> #include <string> using namespace std; int dp[1001][1001]; int main() { string str; getline(cin,str); string t = str; reverse(t.begin(), t.end()); int n = str.length(), m = t.length(); for (int i = 0; i<n-1; i++) { for (int j = 0; j<m-1; j++) { if (str[i] == t[j]) { dp[i + 1][j + 1] = dp[i][j] + 1; } else { dp[i + 1][j + 1] = max(dp[i][j + 1], dp[i + 1][j]); } } } printf("%d", dp[n][m]); return 0; } getline没问题,把dp这个数组放外面就行了
みしつかん 2018-10-30
  • 打赏
  • 举报
回复
首先,你的数组dp没有初始化,我设置成dp[1001][1001]提示越界。数组改小之后就正常了。。。



int main()
{
int dp[10][10];
memset(dp,0,sizeof(dp)/sizeof(dp[0][0]));
string s;
getline(cin, s); //接收一个字符串,可以接收空格并输出,需包含“#include<string>”
string t = s;
reverse(t.begin(), t.end()); //倒置函数,将字符串倒置,需加#include <algorithm>

int n = s.length(), m = t.length();
for (int i = 0; i<n; i++) {
for (int j = 0; j<m; j++) {
if (s[i] == t[j]) { //s中的第一字母和t中所有字母比较
dp[i + 1][j + 1] = dp[i][j] + 1; //
}
else {
dp[i + 1][j + 1] = max(dp[i][j + 1], dp[i + 1][j]);
}
}
}
cout << n << m << endl;
printf("%d", dp[n][m]);
system("pause");
return 0;
}

64,651

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧