已经快三天了,我不知道错误在哪里。如果您中有人能帮助我解决该问题,我将不胜感激。 问题是要找到比给定测试用例更大的回文数,其中第一行是测试用例的数量,其后是测试用例本身。
我已经尝试调试它,但是仍然无法正常工作。
#include <string>
#include <algorithm>
#include <conio.h>
#include <vector>
using namespace std;
int temp=0;
string reverse(string x)
{
reverse(x.begin(),x.end());
return x;
}
string even(string y)
{
string cop=y;
string cop1=y;
cop1=cop.substr(0,y.length()/2)+reverse(cop).substr(y.length()/2);
if(cop1==reverse(cop1)&&cop1>cop)
{
return cop1;
}
else
{
temp=stoi(cop.substr(0,y.length()/2))+1;
cop1=to_string(temp)+reverse(to_string(temp)).substr(0);
}
return cop1;
}
string odd(string z)
{
string cop1=z;
string cop=z;
cop1=cop.substr(0,z.length()/2+1)+reverse(cop).substr(z.length()/2+1);
if(cop1==reverse(cop1)&&cop1>cop)
{
return cop1;
}
else
{
temp=stoi(cop.substr(0,z.length()/2+1))+1;
cop1=to_string(temp)+reverse(to_string(temp)).substr(1);
return cop1;
}
}
int main()
{
int x,len,temp;
cin>>x;
vector<string> arr;
string input;
for(int i=0;i<x;i++)
{
cin>>input;
len=input.length();
if(len%2==0)
{
arr.push_back(even(input));
}
else
{
arr.push_back(odd(input));
}
}
for(int i=0;i<x;i++)
cout<<arr[i]<<endl;
getch();
return 0;
}
我在这段代码中遇到运行时错误SIGABRT
编辑:
这是我尝试过的新代码..但是我遇到了同样的错误..而在Dev C ++中,它运行良好
# req
+--------------------------------------------------+
| req |
+--------------------------------------------------+
| req_id | order_placed | contact_id | seq_records |
+--------+--------------+------------+-------------+
| 1 | null | 1000 | null |
+--------+--------------+------------+-------------+
| 2 | null | 1002 | null |
+--------+--------------+------------+-------------+
| 3 | null | 1003 | null |
+--------+--------------+------------+-------------+
+--------------------------------------------------------------------+
| contact |
+--------------------------------------------------------------------+
| contact_id | first_name | order_placed | company_name | company_id |
+------------+------------+--------------+--------------+------------+
| 1000 | dirt | null | Asus | 12 |
+------------+------------+--------------+--------------+------------+
| 1002 | dammy | null | Asus | 12 |
+------------+------------+--------------+--------------+------------+
| 1003 | samii | null | Asus | 12 |
+------------+------------+--------------+--------------+------------+
| 1004 | xenon | null | Lenova | 1 |
+------------+------------+--------------+--------------+------------+
CREATE TABLE `req` (
`req_id` bigint(20) NOT NULL,
`order_placed` char(1) COLLATE utf8_bin DEFAULT NULL,
`contact_id` bigint(20) DEFAULT NULL,
`seq_records` bigint(2) DEFAULT NULL,
PRIMARY KEY (`req_id`),
KEY `contact_id` (`contact_id`),
CONSTRAINT `req_ibfk_10` FOREIGN KEY (`contact_id`) REFERENCES
`contact` (`contact_id`)
)
/*!40101 SET character_set_client = @saved_cs_client */;
# contact
CREATE TABLE contact (
contact_id bigint(20) NOT NULL,
`first_name` varchar(100) COLLATE utf8_bin NOT NULL,
`company_name` varchar(100) COLLATE utf8_bin DEFAULT NULL,
`company_id` varchar(100) COLLATE utf8_bin DEFAULT NULL,
`order_placed` char(1) COLLATE utf8_bin DEFAULT NULL,
PRIMARY KEY (`contact_id`),
KEY `index_name` (`contact_id`),
)
答案 0 :(得分:0)
由于无法/成功进行转换,程序在std::invalid_argument
中出现stoi
异常。
请检查您对stoi
的输入,希望可以解决此问题。
如果它不起作用。请与SIGABRT共享您的控制台输入/输出。如果可能,GDB日志也可以提供帮助。
希望对您有帮助!