Z字形变换
题目描述将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。
比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下:
123P A H NA P L S I I GY I R
之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:”PAHNAPLSIIGYIR”。
请你实现这个将字符串进行指定行数变换的函数:
string convert(string s, int numRows);
示例 1:
输入:s = “PAYPALISHIRING”, numRows = 3 输出:”PAHNAPLSIIGYIR”
示例 2:
输入:s = “PAYPALISHIRING”, numRows = 4 输出:”PINALSIGYAHRPI”
解释:
1234P I NA L S I GY A H RP I
示例 3:
输入:s = “A”, numRows = 1 输出:”A”
提示:
1 <= s.length <= 1000
...
Vue3+Vite服务端渲染踩坑
找不到名称“require”。是否需要为节点安装类型定义? 请尝试使用 npm i --save-dev @types/node,然后将 “node” 添加到类型字段。ts(2591)解决方法安装@types/node依赖包,并在tsconfig.json文件中compilerOptions的types配置中增加’node’
12345678"compilerOptions": { // ... "types": [ "vite/client", "node" ], // ... }
SyntaxError: Cannot use import statement outside a moduleelementPlus自动引包导致的错误,手动引包解决
路由配置123456export function createRouter() { return _createRouter({ history: ...
Web全屏显示元素
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 <template> <main> <section class="left">left</section> <section ref="fullScreenEle" class="main-content"> main-content <el-button @click="handleFullScreen">全屏切换</el-button> </section> <section class="right">righ ...
JavaScript继承机制
JavaScript的继承做了两件事,一个是new一个构造函数的实例对象,一个是共享构造函数的prototype对象
JavaScript的设计者Brendan Eich为了解决实例对象之间无法共享属性和方法问题,新增了prototype属性,
这个属性是在构造函数里的,它包含一个对象(以下简称”prototype对象”),所有实例对象需要共享的属性和方法,都放在这个对象里面;那些不需要共享的属性和方法,就放在构造函数里面。
实例对象一旦创建,将自动引用prototype对象的属性和方法。也就是说,实例对象的属性和方法,分成两种,一种是本地的,另一种是引用的。
实例对象有一个__proto__属性,这个属性指向的是构造函数的prototype对象,这就构成了js的原型链
Vue跳转页面锚点
正文主要是用scrollIntoView函数,但是当页面有吸顶的header时定位到锚点的时候header会盖住一部分,scrollIntoView函数没办法直接解决这个问题,这里的破题思路是直接滚动一下页面的滚动条,让它往下滚动一点点,代码如下
12345678jumpAnchor (anchor) { if (this.$refs[anchor]) { this.$refs[anchor].scrollIntoView(true) this.$nextTick(() => { document.documentElement.scrollTop = -130 + this.$refs[anchor].offsetTop }) } }
总结解决这个问题的时候思路一度陷入用scrollIntoView函数解决问题的僵局,但是scrollIntoView函数根本就不支持解决这个问题。要做到善用工具,打开思路。
面试问到HTTP就这么回答
HTTP和HTTPs的区别
HTTP 是明文传输协议,HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全。
HTTPS比HTTP更加安全,对搜索引擎更友好,利于SEO,谷歌、百度优先索引HTTPS网页;
HTTPS需要用到SSL证书,而HTTP不用;
HTTPS标准端口443,HTTP标准端口80;
HTTPS基于传输层,HTTP基于应用层;
HTTPS在浏览器显示绿色安全锁,HTTP没有显示;
为什么HTTPS比HTTP安全?HTTP的问题HTTP是明文协议,它有以下缺点:
通信使用明文(不加密),内容可能被窃听
无法证明报文的完整性,所以可能遭篡改
不验证通信方的身份,因此有可能遭遇伪装
HTTP明文协议的缺陷是导致数据泄露、数据篡改、流量劫持、钓鱼攻击等安全问题的重要原因。
HTTPS如何解决HTTP上述问题?HTTPS并非是应用层的一种新协议。只是HTTP通信接口部分用SSL(Secure Socket Layer)和TLS(Transport Layer Security)协议代替而已。通 ...
学习CSS3中rotate函数并画了个时钟
这天逛博客看到好多大佬的网站上都有时钟贼拉有格调,就想自己也整一个,想到作为一个前端开发人员,体现前端开发技术的时刻到了<( ̄︶ ̄)>,用CSS画一个!先给大家看效果:
前置知识下面来总结一下用到的知识点:
rotateZ()函数rotateZ()这个CSS 函数定义了将元素在Z轴(就是数学坐标系X轴,Y轴,Z轴里的Z轴)上旋转而不使其变形的方法。 其运动的程度由指定的角度来定义;如果是正的,则为顺时针旋转,如果是负的,则是逆时针旋转。
rotate()函数
The rotate() CSS 函数 定义一个旋转属性,将元素在不变形的情况下旋转到不动点周围(如 transform-origin 属性所指定) 。 移动量由指定角度定义;如果为正值,则运动将为顺时针,如果为负值,则为逆时针 。 180°的旋转称为点反射 (point reflection)。
transform-origin属性transform-origin CSS属性让你更改一个元素变形的原点。
时钟实现
画出表的圆心
这里我用背景垂直水平居中+before伪类直接在背景上画出来的
画出时针、分针、秒 ...
CSS增加用户体验的特效
总结一下比较好玩儿的特效,用的时候直接来CV。长期更新
边框与背景半透明边框
背景知识 background-clip
默认情况下,背景的颜色会延伸至边框下层,这意味着我们设置的透明边框效果会被覆盖掉,在CSS3中,我们可以通过设置background-clip: padding-box来改变背景的默认行为,打到我们想要的效果
12345678910111213141516171819202122232425<style> main { width: 100%; height: 100vh; background: #4b7b7c; padding-top: 100px; } div { padding: 12px; margin: 20px auto; width: 200px; background: #c7b723; border: 10px solid hsla(0, 0%, 100%, .5 ...
Hexo博客通过Github Actions实现CI
通过Hexo搭建的个人博客,虽然很强大、很方便,输入命令就可以快速生成静态页面并部署访问,但是还有让它更好用的优化空间,比如直接把打包部署环境放到Github Actions上面,我个人就是用这种形式部署博客的。下面来介绍一下。
总体思路
Hexo项目里配置好Github Actions流程
Hexo博客项目上传到GIthub
Github Actions自动打包并把打包文件上传到腾讯云服务器
腾讯云服务器替换Nginx的入口文件为新的打包文件
功能实现创建配置在项目根目录创建 .github/workflows/{workflow-name}.yml 文件。这里的workflow-name根据根据不同的 event 或者要实现的 actions 来创建。
项目配置根据注释,修改自己的配置
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950name: main# 触发条件:push到main分支后on: push: branc ...
Weback使用小技巧
批量导入文件:require.context通过执行require.context函数获取一个特定的上下文,主要用来实现自动化导入模块,在前端工程中,如果遇到从一个文件夹引入很多模块的情况,可以使用这个api,它会遍历文件夹中的指定文件,然后自动导入,使得不需要每次显式的调用import导入模块
使用语法Webpack 会在构建中解析代码中的 require.context() 。
123456require.context( directory, (useSubdirectories = true), (regExp = /^\.\/.*$/), (mode = 'sync'));
示例:
1234require.context('./test', false, /\.test\.js$/);//(创建出)一个 context,其中文件来自 test 目录,request 以 `.test.js` 结尾。require.context('../', true, /\.stories\.js$/);// (创建出)一 ...