四个任意位数值组合最大数求解的程序实现
假设有四个任意数 234, 345, 46, 1345
,它们组合成的最大数是 46 345 234 1345
;
这个简单,先取首位数值最大的那个数放在最前面,依次即可。
假设有四个任意数 234, 345, 46, 2345
,它们组合成的最大数是 46 345 2345 234
;
这个就需要进行不同数值内部每一位位的比较。
如此,该如何用程序具体地求解实现呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
感谢@xiaoyifang提醒,之前的思路有问题。
这个题目核心在于两个数字串之间如何比较
通常思路是比较拼接后的串哪个大。即比较[串1拼串2] 和 [串2拼串1]的大小,从而决定哪个在前。
可以用循环指针的做法节省空间开销:
用两个指针分别指向串1串2的起始位置,不断右移比较。串的指针到尾部时循环回头部继续比对,直到满足return条件(两指针对应的char不等)或循环次数达到两串长度之和结束。
隐含的问题是当两个字符串的起始都是一样的,并且一个字串是另一个字串的子串时,该如何排放这两个字符串的先后顺序。