扫码关注官方订阅号
两个很长很长的字符串,怎么比较是否相等,就是内容一至。平时一般是用'=='号比较,这个对于比较大的字符串比较会有性能问题吗?
走同样的路,发现不同的人生
计算哈希值缓存起来,之后比较哈希就行了,字符串更改的时候哈希要跟着改。
理论上任何字符串比较算法都至少要把两个字符串遍历一遍,所以也没有什么特别的方法。
javascript引擎会依顺序将字符进行比较。首先比较两个字符串的第一个字符,然后再比较下一个,以此类推。
字符串其实就是个数组,用二分法等算法。
如果是按照你的题目来的话,我觉得应该是:1、 先比较长度,这个是字符串的属性,没有性能问题,长度不一样,当然不相等。
2、 选择一个合适的长度来分割2个大字符串,然后用 == 或者 === 来比较
不知道这样满足你要求不?
完整比较的话,感觉没有好方法,不过如果字符长度太长,不知道是否使用Duff's Device(达夫设备)改造的循环判断会不会比原始的==判断快
现有算法你可以:
查找
替换
正则
自写算法的话,字符串其实就是个数组,你可以用二分法等算法来自己研究。这方便的具体没测试过,你可以自己试试性能和时间,如果可行别忘了告诉我。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
计算哈希值缓存起来,之后比较哈希就行了,字符串更改的时候哈希要跟着改。
理论上任何字符串比较算法都至少要把两个字符串遍历一遍,所以也没有什么特别的方法。
javascript引擎会依顺序将字符进行比较。
首先比较两个字符串的第一个字符,然后再比较下一个,以此类推。
字符串其实就是个数组,用二分法等算法。
如果是按照你的题目来的话,我觉得应该是:
1、 先比较长度,这个是字符串的属性,没有性能问题,长度不一样,当然不相等。
2、 选择一个合适的长度来分割2个大字符串,然后用 == 或者 === 来比较
不知道这样满足你要求不?
完整比较的话,感觉没有好方法,不过如果字符长度太长,
不知道是否使用Duff's Device(达夫设备)改造的循环判断会不会比原始的==判断快
现有算法你可以:
查找
替换
正则
自写算法的话,字符串其实就是个数组,你可以用二分法等算法来自己研究。这方便的具体没测试过,你可以自己试试性能和时间,如果可行别忘了告诉我。