【每日两题】最长无重复字符串、深拷贝
2023-12-18 07:26:07
最长无重复字符串
/**
* @param {string} s
* @return {number}
*/
var lengthOfLongestSubstring = function(s) {
let res=''//最新的
let index=0
let longStr=''//上一次最大的
while(index<=s.length-1){
let curr=s[index]
if(!res.includes(curr)) res+=curr
else res=res.slice(res.indexOf(curr)+1)+curr
if(longStr.length<res.length) longStr=res
index++
}
return longStr.length
};
深拷贝
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
</head>
<body>
<script type="text/javascript">
const _completeDeepClone = (obj, map = new Map()) => {
// 补全代码
//处理基本类型
if(obj===null||typeof obj!=='object'){
return obj;
}
//处理循环引用
if(map.has(obj)){
return map.get(obj);
}
//处理日期类型
if(obj instanceof Date){
return new Date(obj);
}
//处理正则表达式类型
if(obj instanceof RegExp){
return new RegExp(obj);
}
//处理函数类型
if(typeof obj === 'function'){
return obj;
}
//处理数组类型
if(Array.isArray(obj)){
const copyArray=[]
map.set(obj,copyArray);
for(let i=0;i<obj.length;i++){
copyArray[i]=_completeDeepClone(obj[i],map)
}
return copyArray;
}
//处理普通对象类型
const copyObj={};
map.set(obj,copyObj);
for(const key in obj){
if(obj.hasOwnProperty(key)){
copyObj[key]=_completeDeepClone(obj[key],map)
}
}
return copyObj;
}
</script>
</body>
</html>
文章来源:https://blog.csdn.net/manerzi/article/details/135052830
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!