相关疑难解决方法(0)

列出字符串/整数的所有排列

编程访谈中的一个常见任务(不是根据我的访谈经验)是采用字符串或整数并列出每个可能的排列.

有没有这样做的例子和解决这个问题背后的逻辑?

我已经看过一些代码片段,但它们没有得到很好的评论/解释,因此难以理解.

c# algorithm permutation

150
推荐指数
13
解决办法
14万
查看次数

如何在.net(c#)中为可安全存储在数据库中的字符串创建HashCode?

引用 Eric Lippert的GetHashCode指南和规则:

规则:GetHashCode的消费者不能依赖它随着时间的推移或跨appdomains的稳定性

假设您有一个Customer对象,其中包含一系列字段,如Name,Address等.如果在两个不同的进程中使用完全相同的数据生成两个这样的对象,则它们不必返回相同的哈希代码.如果你在星期二的一个进程中创建这样一个对象,关闭它,并在星期三再次运行程序,哈希码可能会有所不同.

这在过去曾经被人咬伤过.System.String.GetHashCode的文档特别指出,两个相同的字符串在CLR的不同版本中可以具有不同的哈希码,实际上它们也是如此.不要在数据库中存储字符串哈希并期望它们永远是相同的,因为它们不会.

那么创建一个可以存储在数据库中的字符串的HashCode的正确方法是什么?

(请告诉我,我不是第一个在我写的软件中留下这个错误的人!)

.net c# database hashcode gethashcode

44
推荐指数
2
解决办法
1万
查看次数

如何在不使用暴力方法的情况下找到具有哈希冲突的三个不同字符串?

我在招聘面试中看到了以下问题:

在 C# 中如何找到具有相同哈希码的三个不同字符串?

换句话说,给定字符串ab、 和c,以下四个陈述应该为真:

a != b
a != c
a.GetHashCode() == b.GetHashCode()
a.GetHashCode() == c.GetHashCode()
Run Code Online (Sandbox Code Playgroud)

笔记:

  1. 您不应该覆盖GetHashCode()也不应该使用自己的String类。使用默认的 .NET 实现。
  2. 您不需要知道string.GetHashCode().
  3. 人们应该相对较快地找到结果,而不必使用多线程。

我对此有点困惑。有没有一种方法可以做到这一点,而无需实际逐一枚举字符串,这肯定会非常慢,并且无需检查实际实现string.GetHashCode()来找出如何进行冲突?

c# puzzle performance hashcode

3
推荐指数
1
解决办法
98
查看次数