给定一个非负整数的列表,将它们排列成最大的数。
例如,给定[3,30,34,5,9],形成的最大数是9534330。
注意:结果可能很大,因此需要返回一个字符串,而不是整数。
bool radixOrder(pair<int,int> p1, pair<int,int> p2)
{
int val1=p1.first;
int e1=p1.second;
int val2=p2.first;
int e2=p2.second;
if(val1==val2 && e1==e2)
{
return val1==val2;
}
else if(((val1/e1)%10) == ((val2/e2)%10))
{
while(val1/e1 == val2/e2)
{
if(e1/10!=0)
e1=e1/10;
if(e2/10!=0)
e2=e2/10;
}
return (val1/e1)%10 > (val2/e2)%10;
}
else
{
return (val1/e1)%10 > (val2/e2)%10;
}
}
vector<pair<int,int> > createVNew(vector<int>& v)
{
vector<pair<int,int> > temp;
for(int i=0; i<v.size(); i++)
{
cout << i << endl;
int val=v[i], e=1;
if(v[i]==0)
{
temp.push_back(make_pair(val, 1));
}
else
{
while((e/v[i])==0)
e*=10;
if(e!=v[i])
{
temp.push_back(make_pair(val,e/10));
}
else if(e==v[i])
{
temp.push_back(make_pair(val,e));
}
}
}
return temp;
}
string largestNumber(vector<int>& v)
{
int e=1;
vector< pair<int,int> > vnew=createVNew(v);
sort(vnew.begin(), vnew.end(), radixOrder);
stringstream s;
for(int i=0; i<vnew.size(); i++)
{
s<<vnew[i].first;
}
return s.str();
}
它给出了浮点异常。
我曾试着找到解决办法,但没能找到。我是cpp的初学者,任何帮助都会很好。
您的radixsort
函数违反了compare
要求,即非自反性(即radixorder(x,x)
必须返回false
,但它返回true
,因为执行转到第一个if
分支)。
所以这里有一个经典的未定义行为示例。我认为这段代码应该以某种方式重写,就像
if (e1==e2)
{
return val1 > val2;
}
不过,我可以通过将输入数字按相反顺序排序为字符串来解决这个问题。
问题内容: 我正在尝试为两个不同的Linux环境构建一个简单的C程序。在一个设备上,程序运行正常,在另一设备上,程序生成浮点异常。该程序除了从main返回0之外什么都不做,这使我相信与启动代码也许不兼容,也许是ABI? 该程序使用gcc编译,具有以下构建规范: 使用内置规格。目标:i386-redhat-linux配置为:../configure –prefix = / usr –mandir =
我试图为两个不同的Linux环境构建一个简单的C程序。在一个设备上程序运行良好,在另一个设备上程序产生浮点异常。该程序除了从main返回0外什么也不做,这让我相信与启动代码有一些不兼容的地方,也许是ABI? 该程序是用gcc编译的,具有以下构建规范: 使用内置规格。目标:i386-redhat-linux配置为:../configure--prefix=/usr--mandir=/usr/shar
问题内容: 我正在尝试从android解析json,但出现了这个奇怪的异常。我的json数据是 {“ id”:“ 1”,“ owner”:“ 1”,“ name”:“ gravitas”,“ description”:“是一场盛会”,“ start_time”:“ 0000-00-00 00:00:00 “,” end_time“:” 0000-00-00 00:00:00“,” venue“:”
我正在尝试从数据库的某一行获取文本。为此,我做了这个函数 我这样称呼它: 我的桌子看起来像这样: 我得到这个错误: 为什么我会犯这个错误?我做错了什么? 提前感谢。
{java.io.ioException:SERVICE_NOT_AVAILABLE at system.runtime.exceptionservices.exceptiondispatchinfo.throw()[0x0000c]in/src/mono.android/src/runtime/jnienv.g.cs:195 at android.gms.gcm.iid.instanceId.g
0.9.2 新版功能. 封装字符串,提供 ANSI 色彩输出的函数。 本模块中的所有函数均返回包裹对应色彩 ANSI 字符的 text 字符串。 例如,在支持 ANSI 的终端中打印绿色文字: from fabric.colors import green print(green("This text is green!")) 这些函数返回值都是修改后的字符串,因此你也可以嵌套使用它们: fro