学习hash刷的第一道题,简单记录一下hash的思路。
传送门:题目
题意:
给定n个字符串,比较任意两个字符串,如果两个字符串在同一个位置,有且只有一个不同,结果+1,最后输出结果。
题解:
如果我们不用hash,简单思路就是比较任意两个字符串(时间复杂度: n∗(n−1)2 n ∗ ( n − 1 ) 2 , 从左往右扫一遍 (时间复杂度:len)
如果只有一个不同,结果+1。可想,时间复杂度是很感人的。
hash的核心就是把一个无限长字符串映射为一个大整数,如果大整数不同,我们就可以认为两个字符串是不同的。
当然,这个大整数不是随便造的