gpt4 book ai didi

c++ - 返回所有代码 - 字符串

转载 作者:行者123 更新时间:2023-11-30 04:46:02 28 4
gpt4 key购买 nike

假设 a = 1, b = 2, c = 3, ... , z = 26 的值。给定一个数字字符串 S。编写一个程序返回所有可能的代码列表从给定的字符串生成。

在大多数情况下,此代码都有效,但对于数字大于 26 的输入,它会给出错误的输出。例如:12345。

#include <iostream>
#include <string.h>
using namespace std;


using namespace std;
int atoi(char a)
{
int i=a-'0';
return i;
}
char itoa(int i)
{
char c='a'+i-1;
return c;
}
int getCodes(string input, string output[10000]) {
if(input.size()==0)
{
return 1;
}
if(input.size()==1)
{
output[0]=output[0]+itoa(atoi(input[0]));
return 1;
}
string result1[10000],result2[10000];
int size2;

int size1=getCodes(input.substr(1),result1);
if(input.size()>1)
{
if(atoi(input[0])*10+atoi(input[1])>10&&atoi(input[0])*10+atoi(input[1])<27)
{
size2=getCodes(input.substr(2),result2);
}

}
for(int i=0;i<size1;i++)
{
output[i]=itoa(atoi(input[0]))+result1[i];
}
for(int i=0;i<size2;i++)
{
output[i+size1]=itoa(atoi(input[0])*10+atoi(input[1]))+result2[i];
}
return size1+size2;
}



int main(){
string input;
cin >> input;

string output[10000];
int count = getCodes(input, output);
for(int i = 0; i < count && i < 10000; i++)
cout << output[i] << endl;
return 0;
}

如果我给输入 12345,输出是:“abcde奥德液晶显示器我"代替 :“abcde奥德液晶显示器”

最佳答案

我明白了各位成员(member)。我没有将 size2 变量初始化为零。我也没有使用 >= 运算符。

int getCodes(string input, string output[10000]) {
if(input.size()==0)
{
output[0]="";
return 1;
}
if(input.size()==1)
{
output[0]=itoa(atoi(input[0]));
return 1;
}
string result1[10000],result2[10000];
int size2=0;

int size1=getCodes(input.substr(1),result1);
if(input.size()>1)
{
if(atoi(input[0])*10+atoi(input[1])>=10&&atoi(input[0])*10+atoi(input[1])<27)
{
size2=getCodes(input.substr(2),result2);
}

}
int k=0;
for(int i=0;i<size1;i++)
{
output[k++]=itoa(atoi(input[0]))+result1[i];
}
for(int i=0;i<size2;i++)
{
output[k++]=itoa(atoi(input[0])*10+atoi(input[1]))+result2[i];
}
return k;
}

这是 getCodes 函数的最终代码。谢谢大家:)

关于c++ - 返回所有代码 - 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56989829/

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