Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >字符串比较

字符串比较

作者头像
meteoric
发布于 2018-11-15 08:44:30
发布于 2018-11-15 08:44:30
2.1K00
代码可运行
举报
文章被收录于专栏:游戏杂谈游戏杂谈
运行总次数:0
代码可运行

网上看到有人也说是他遇到的一道笔试题,那我想这道题目其实还考过很多人。只不过当时是给我笔让我写出来,一下子懵住了,没缓过神来。写的算法时间复杂度为O(n*m),而出题的要求是时间复杂度控制在O(n+m),而且内存和CPU要控制的很小。

已经快一年了,只记得题目的大意是:两个很多的字符串A、B(全部小写字母),请找出A中有,而B中没有的?

如果是用纸写出来,我想思考后也能写出来,而如果只是说(一般最多说一次,实在不理解最多再重复一次,还不能理解,别人可能会认为你理解和沟通上有障碍了)其实还挺考一个人的理解能力和反应能力。

记得我当时是提笔就写,得到的回答是问:是说还能不能继续优化?然后又改了改,同样又问,能不能继续优化。其实这道题并不难,重点是要理解出题的本意,找到最高效的方法,后来要想好后手机(最多140个字符)发给他。

题目有两个信息已经透露出来了:

1、对于比较字符串,尽量避免二次或以上的循环(消耗时间),出这道题希望给出的代码只有一次循环;

2、全部都是小定字母,而小写字母最多只有26个(a-z);

当时直接在手机上写的,代码也不见了,刚自己又写了一遍:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!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> 预览代码

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2011-03-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
以指定编码对字符串进行截取
这里从len/2开始试着截取字符串,截取后调用getRealLen方法获取真实长度,判断是否超出限定的长度
meteoric
2018/11/15
9370
从10W个数中随机抽走2个数,求出那两个数是多少
从1到10w(共10w个数)中随机抽走2个数,然后打乱剩下的数的顺序,问如果从这剩下的数中快速的找出抽走的是哪2个数?
meteoric
2019/02/25
1.1K0
从10W个数中随机抽走2个数,求出那两个数是多少
获取某一天是该年中的第多少周
比如第一年第一天是星期一,那么直接获取那一天是该年中的第多少天,取它除以7的上限;
meteoric
2019/02/25
9170
parentNode,firstChild,parentNode,nextSibling;
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN” “http://www.w3.org/TR/html4/strict.dtd”> <html> <head> <meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ /> <title>Untitled Document</title> <script language=”JavaScript”> function test1() { var node = document.getElementById(“imgid2”); var pimg = node.parentNode.firstChild; var inpu = node.parentNode.nextSibling; alert(pimg.value); alert(inpu.value); } </script> </head> <body> <div> <a id =”aid”> <img id =”imgid” value=”img1″ /> <img id =”imgid2″ value=”img2″ /> </a> <input type=”text” value=”input”/> </div> <input type=”button” value=”GOGO” onClick=”test1();” /> </body> </html>
全栈程序员站长
2022/09/14
3560
JavaScript基础学习--13字符串、查找高亮显示
Demos:   https://github.com/jiangheyan/JavaScriptBase 一、字符串      1、str.length;     //获取字符串长度      2、str.chartAt(n);     //获取字符串中指定下标(n)的字符,默认第0个,找不到返回空      3、str.charCodeAt(n);     //获取字符串中指定下标(n)转码后的ascll码     数字0~9【对应ascll码:48~57】     a~z【对应ascll码:97~1
用户1148399
2018/01/09
1K0
不使用定时器实现的onhashchange
之前看sparks345 写的《不采用interval方式模仿onHashChange》
meteoric
2019/02/25
6590
不使用定时器实现的onhashchange
【JavaScript】内置对象 - 数组对象 ⑤ ( 数组转字符串 | toString 方法 | join 方法 )
Array 数组对象参考文档 : https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array
韩曙亮
2024/05/14
8870
【JavaScript】内置对象 - 数组对象 ⑤ ( 数组转字符串 | toString 方法 | join 方法 )
JavaScript斐波纳契数列非递归算法
一般斐波纳契数列采用递归或是数组缓存的方式,这里的方法不考虑重复计算斐波纳契数列的情况。
meteoric
2018/11/15
5010
javascript计算两个日期之间相差多少天
var date1 = new Date("10/13/1975"); var date2 = new Date("10/14/1979"); var date_diff = Math.abs(date2.getTime() - date1.getTime())/86400000;</pre> checkbox操作 1. 全选、全不选 2.打印所有的选中项目 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http:
用户1503405
2021/09/23
1.6K0
JavaScript版的简单动画
Google+中有一个特效:拖拽用户头像至分组内,用户头像会有一个特效(绕着圆圈转一圈)。写了个简单的示例,效果如下图所示:
meteoric
2019/02/25
6690
JavaScript版的简单动画
EditPlus中有用的快捷键
点击到该标记(全选或光标落在里面即可)按下ctrl+[就可以找到匹配的标签了。权支持HTML标签的匹配。
meteoric
2018/11/15
1.3K0
Web阶段:第三章:JavaScript语言
JavaScript介绍: 1.Javascript语言诞生主要是完成页面的数据验证。 2.它运行在客户端,需要运行浏览器来解析执行JavaScript代码。 3.JS是Netscape网景公司的产品,最早取名为LiveScript;为了吸引更多java程序员。更名为javascript。 4.JS是弱类型,Java是强类型。
Java廖志伟
2022/09/28
3.4K0
php案例 计算字符串单词数量
作者:陈业贵 华为云享专家 51cto(专家博主 明日之星 TOP红人) 阿里云专家博主 文章目录 什么是单词? cyg.php ---- 什么是单词? 举个例子: aaa aaa aaa 这就是三个单词。 cyg.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title> 计算字符串单词数量 <
贵哥的编程之路
2022/09/23
4040
php案例 计算字符串单词数量
HTML基础复习(一)
HTML:超文本标记语言(HyperText Markup Language),不是一种编程语言,是标记语言 HTML元素: <p>段落</p> HTML标签: <p>段落</p> HTML声明:<!DOCTYPE>并不是标签 HTML5:<!DOCTYPE html> HTML4.0.1 strict:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> HTML 4.01 Tr
用户1667431
2018/04/18
9920
JS生成当前页面URL二维码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>js_canvas_download</title> <script type='text/javascript' src='http://c
小语雀网
2022/05/06
2.4K0
HTML基本语法和语义(转)
该声明位于文档中最前面的位置,处于html标签之前,此标签告知浏览器文档使用哪种HTML或者 XHTML规范。
山河木马
2019/03/05
5720
python开发_html_html处理
经过源文件内容和转换后的内容相比较,我想你知道html.escape()方法的作用了吧
Hongten
2022/05/06
5400
JavaScript生成验证码和32位随机码
写完字后,为什么要恢复坐标原点?这里写完一个字后,它的坐标也会跟着去到右下角,所以不回到起点的话,会写出斜着的一行字,单独把画布的宽高变大即可看到结果。分析可能有错,麻烦见谅。
赤蓝紫
2023/01/02
1.9K0
JavaScript生成验证码和32位随机码
第三篇 HTML主要组成部分
<!--声明该文件为html,且符合w3c所制定的html版本--> <!Doctype html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <!--声明字符集--> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <!--声
侠客冷展堂
2021/12/20
3840
第三篇 HTML主要组成部分
JavaScript高级
首先更正一个小问题,昨天的JavaScript入门一文中,末尾的“网页换肤”这个小案例的代码插入的有问题,插入的是名片案例的代码,排版不严谨向您致歉,现在补发更正。
小闫同学啊
2019/07/18
1.8K0
相关推荐
以指定编码对字符串进行截取
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验