【问题标题】:Find the bigger number out of two numbers stored as strings in C#在 C# 中以字符串形式存储的两个数字中找出较大的数字
【发布时间】:2015-09-30 19:07:10
【问题描述】:

我正在处理一个非常大的输入(试图解决Next Palindrome problem in SPOJ)。我需要比较大数字并找出哪个更大。所有这些都没有使用 BigInteger 类,否则我可以简单地从字符串中解析 BigInteger 并进行比较以获得结果。

我尝试了 string.compare(a,b) 但产生的输出表明它不支持排序“数字字符串”

【问题讨论】:

  • 数字的格式是什么?它是一个整数,还是可以是浮点数?可以是负数吗?能有领先的zeo吗?
  • 不,我正在努力寻找最近的较大回文数,没有负数、小数或前导零。

标签: c# algorithm


【解决方案1】:
  1. 找出哪个字符串更长。
  2. 用零填充较短字符串的开头以匹配第一个字符串的长度:
shorterString = shorterString.PadLeft(longerString.Length, '0');
  1. Compare

更新:我假设这些数字是整数。如果它们可以是浮点/十进制,那么算法就不会那么简单了。

【讨论】:

  • 字符串不需要填“0”。如果它更短 - 比它更小
  • @ig-melnyk 如果较长的字符串有前导零怎么办?
  • @ig-melnyk 如果已经填充,则不会。或小数。或否定
  • 比较为从左到右检查字符串中的每个数字?
  • @Rahul,与string.Compare 进行比较。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-17
  • 2022-06-15
  • 1970-01-01
  • 1970-01-01
  • 2016-05-05
相关资源
最近更新 更多