Algorithm 破解编码面试-数字交换问题
在《破解编码面试》一书中,第16章有一个问题,叫做“数字交换” 有人能解释下图中突出显示的线吗 我用双数据类型的加减法尝试了这个问题,效果很好。除此之外,字符串在xor中不起作用Algorithm 破解编码面试-数字交换问题,algorithm,Algorithm,在《破解编码面试》一书中,第16章有一个问题,叫做“数字交换” 有人能解释下图中突出显示的线吗 我用双数据类型的加减法尝试了这个问题,效果很好。除此之外,字符串在xor中不起作用 那么,它对更多数据类型而不仅仅是整数起作用意味着什么呢?哪种数据类型会给加减法带来问题 你对浮点数和双点数的测试还不够 如果您尝试使用浮点1的加法/减法解决方案。还有一万块。您将返回10000和0(因为表示限制)。在这种情况下,Xor也可以正常工作。双打也有同样的问题,但你需要更大的数字差异(我认为是1和1e16)。
那么,它对更多数据类型而不仅仅是整数起作用意味着什么呢?哪种数据类型会给加减法带来问题 你对浮点数和双点数的测试还不够 如果您尝试使用浮点1的加法/减法解决方案。还有一万块。您将返回10000和0(因为表示限制)。在这种情况下,Xor也可以正常工作。双打也有同样的问题,但你需要更大的数字差异(我认为是1和1e16)。有些语言有可能处理这些情况的特殊表示 对于字符串,您需要使它们的长度相等,然后逐字节应用异或
总而言之,按位异或将在您可以应用它的所有情况下为您提供正确答案。异或解决方案适用于以位表示的任何内容,即二进制计算机中的任何数据。sub add sub方法有问题的数据类型包括
- 具有过流或欠流特性的任何类型,例如整数
- 具有精度特征的任何类型,例如浮子
- 没有在某些算术同源词(例如字符串)中定义这些运算的任何类型
a
和b
是同一对象。