字符串比较
时间:2022-06-14
本文章向大家介绍字符串比较,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
网上看到有人也说是他遇到的一道笔试题,那我想这道题目其实还考过很多人。只不过当时是给我笔让我写出来,一下子懵住了,没缓过神来。写的算法时间复杂度为O(n*m),而出题的要求是时间复杂度控制在O(n+m),而且内存和CPU要控制的很小。
已经快一年了,只记得题目的大意是:两个很多的字符串A、B(全部小写字母),请找出A中有,而B中没有的?
如果是用纸写出来,我想思考后也能写出来,而如果只是说(一般最多说一次,实在不理解最多再重复一次,还不能理解,别人可能会认为你理解和沟通上有障碍了)其实还挺考一个人的理解能力和反应能力。
记得我当时是提笔就写,得到的回答是问:是说还能不能继续优化?然后又改了改,同样又问,能不能继续优化。其实这道题并不难,重点是要理解出题的本意,找到最高效的方法,后来要想好后手机(最多140个字符)发给他。
题目有两个信息已经透露出来了:
1、对于比较字符串,尽量避免二次或以上的循环(消耗时间),出这道题希望给出的代码只有一次循环;
2、全部都是小定字母,而小写字母最多只有26个(a-z);
当时直接在手机上写的,代码也不见了,刚自己又写了一遍:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title> new document </title>
<meta name="generator" content="editplus" />
<meta name="author" content="" />
<meta name="keywords" content="" />
<meta name="description" content="" />
<meta http-equiv='content-type' content='text/html;charset=utf-8' />
</head>
<body>
<script type="text/javascript">
var s1 = new Array(60999*10).join('abcdefghijklmnopqrstuvwxyz'),
s2 = '';
!(function() {
var arr = [], i = 0, s = '';
while (i < 26) {
i++;
s = String.fromCharCode(Math.random()*26 + 97);
arr.push(s);
}
s2 = new Array(10000*10).join(arr.join(''));
})();
function getChar(str1, str2) {
var arr = [],
s = '';
for (var i = 97;i < 123 ;i++ ) {
s = String.fromCharCode(i);
if (str1.indexOf(s) > -1 && str2.indexOf(s) == -1) {
arr.push(s);
}
}
return arr.join("");
}
var date1 = +new Date();
var rstStr = getChar(s1, s2);
var date2 = +new Date();
alert('Total Date:' + (date2 - date1) + 'n string is : ' + rstStr);
</script>
</body>
</html>
在线运行代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title> new document </title> </head> <body> </body> </html> 预览代码
- 解决启用wp super cache缓存后,页面追加多个斜杠仍然可以访问的隐患
- WordPress集成底部滚动推荐条,让好文章不再被埋没
- go语言base64加密解密的方法
- WordPress酷炫CSS3读者墙,排名按年度、本月、本周划分的小方法
- WordPress给文章添加百度是否已收录查询和显示功能(自定义栏目优化版)
- PHP制作百度站内搜索绿色通道的网页列表数据文件
- 分享几个可用的二维码API,以及给博客添加文章二维码图片的方法
- AI即开即用,这是悄然推出的“腾讯最新AI技术”小程序
- Android Linker 与 SO 加壳技术
- Go语言操作mysql数据库简单例子
- go语言的sql包原理与用法分析
- WordPress免插件生成完整站点地图(sitemap.xml)的php代码
- Go语言常用字符串处理方法实例汇总
- 硬盘故障时如何强制关机:Input/output error
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【每周一库】 Sincere - a micro web framework for Rust
- 小米路由器 HD(R3D) 折腾笔记
- Deepin 系统科学上网 PAC 自动代理
- 十分钟快速搭建内网穿透工具 —— frp
- 精选25道Mysql面试题,快来测测你的数据库水平吧
- Flask基础入门学习笔记-1
- WSL 下优雅地 Coding
- Python3补充知识点
- WSL 下搭建前端开发环境
- 编译安装 SeasLog 扩展
- Python3笔试实际操作基础1.md
- Python3入门学习四.md
- 通用封装函数——四则运算
- 打造自己最喜爱的 Windows10 —— 系统与软件配置优化篇
- 编译安装 IgBinary 扩展