- 博客(51)
- 收藏
- 关注
原创 PHP 按照字节来分割字符串
public static function mbStrSplit($str, $blen): array { $result = []; $clen = mb_strlen($str,'utf-8'); //字符数量 $b = 0; $e = 0; $i = 0; while ($i < $clen-2){ for ($j = $i+1; $j < $cle..
2021-01-13 14:45:18
567
原创 LeetCode(golang):20. 有效的括号
题目给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例输入: "()"输出: true解析这是一个典型的栈的问题,遍历字符串,遇到左边的进栈,遇到右边的和左边的匹配的话两个就出栈,为了方便比较,将左右对应关系存到map中答案//len1 := len(s) //...
2020-11-16 21:15:21
292
原创 LeetCode(golang):142. 环形链表 II
题目给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。示例输入:head = [3,2,0,-4], pos = 1输出:返回索引为 1 的链表节点解释:链表中有一个环,其尾部连接到第二个节点。解析根据数学公式推断,慢指针和快指针分别..
2020-11-03 12:17:14
254
原创 LeetCode(golang):25. K 个一组翻转链表
题目给你一个链表,每k个节点一组进行翻转,请你返回翻转后的链表。k是一个正整数,它的值小于或等于链表的长度。如果节点总数不是k的整数倍,那么请将最后剩余的节点保持原有顺序。示例给你这个链表:1->2->3->4->5当k= 2 时,应当返回: 2->1->4->3->5当k= 3 时,应当返回: 3->2->1->4->5解析将k个节点进行分组进行反转链表,是206题号...
2020-11-03 12:00:38
363
原创 LeetCode(golang):24. 两两交换链表中的节点
题目:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:输入:head = [1,2,3,4]输出:[2,1,4,3]解法一分析:第一种解法是迭代,将节点两两分组进行迭代答案:func swapPairs(head *ListNode) *ListNode { first := &ListNode{0, head} temp := first fo
2020-11-03 11:16:02
183
原创 jquery Ajax上传数据格式
今天琢磨了一下前后端分离的项目中jquery ajax上传数据,后端接收的问题1、采用formData,这种可以用来直接上传文件,后端用来 PostForm 获取数据//创建form表单var formData = new FormData//获取文件对象var file = document.getElementById("upload").files[0]//获取值var text = $("#txt").val()//组装数据formData.append("upload"..
2020-10-17 22:25:58
464
原创 使用tp5的thinkphp queue来实现订单语音通知
实现场景:用户下单后通知订单,如果在3分钟后还没有接单就语音通知提醒,这里用到的是阿里云的语音通知服务,在tp5中使用composer来安装1、安装阿里云语音通知SDKcomposer require alibabacloud/dyvmsapi-20170525 安装think-queue服务 composer require topthink/think-queue2、think-queue的配置文件在application/extra/queue.php,内容是...
2020-09-08 11:49:21
1278
2
原创 使用supervisor实现thinkphp-queue进程常驻后台·
1、Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。2、详细的配置说明请参考https://www.jianshu.com/p/0b9054b33db3,下面主要说说我的配置过程。 yum安装supervisoryum install epel-releaseyum install supervisor//设置开机自动启动systemctl enable supervisor...
2020-09-08 11:05:42
1331
原创 记学习错误:Malformed UTF-8 characters, possibly incorrectly encoded
在本课程中,使用了redis来缓存,但是没有打开redis服务,缓存的时候出现了这个错误。
2020-09-04 10:01:15
812
原创 LeetCode(golang):141、环形链表
题目:给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例:输入:head = [1,2], pos = 0输出:true解释:链表中有一个环,其尾部连接到第一个节点。解法一分析:第一种解法是使用map将经过的head都存进来,检查是否有重复的指针,如果有就是环状链表答案:func hasCycle(head *ListNo
2020-07-29 11:46:24
281
原创 LeetCode(golang):15、 三数之和
题目:给你一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]分析:本题首先想到的是用暴力解法,采用三层循环,将所有符合条件的情况都列出来,如下:func th...
2020-07-29 10:20:47
270
原创 LeetCode(golang):11、 盛最多水的容器
题目:给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画 n 条垂直线,垂直线 i的两个端点分别为(i,ai) 和 (i, 0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且n的值至少为 2。 图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为49。示例...
2020-07-28 17:45:37
240
原创 AndroidStudio连接mumu模拟器
在AndroidSDK安装目录下又platform-tools,先打开模拟器,在AndroidStudio的Terminal下输入F:切换到F:\AndroidSDK\platform-tools(本人的SDK路径),再输入adb connect 127.0.0.1:7555就连接上了。
2020-07-17 11:22:15
709
原创 LeetCode(golang):70、爬楼梯
题目:假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?示例:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶解法一分析:题目分析,用数学归纳法列出几个,就会发现其实是一个斐波那契数列,可以用递归方法,不过在提交时超时答案:funcclimbStairs(nint)int{ifn<=2{...
2020-07-16 17:57:32
214
原创 LeetCode(golang):283、移动零
给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。解析:直接遍历数组,从头开始,先将零位标记,然后向后遍历,碰到非零的就向前换位,直到遍历完全。答案:funcmoveZeroes(nums[]int){//默认j是零位,需要替换的j:=0...
2020-07-16 14:49:40
204
原创 将文档中的地址标记在百度地图上
1、先将一个地址表格文档中的数据读取出来,这里用到了xlsx.core.min.js,可以在github上下载。再用百度地图API将每个地址的经纬度读取出来标记到地图上。<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="viewport" content="initial-sc
2020-05-23 11:55:36
675
原创 微信退款返回的几种情况
1、订单已经全额退款返回后再请求退款时:{ "appid": "wx88888888", "err_code": "ERROR", "err_code_des": "订单已全额退款", "mch_id": "158888888", "nonce_str": "zPT5P04rREEM68yW", "result_code": "FAIL", "return_code": "SUCCESS", "return_msg": "OK", ...
2020-05-21 15:10:47
4617
原创 LeetCode(golang):206、反转链表
206、反转链表反转一个单链表。示例输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL解析反转链表就是将指针反转,逻辑上很简单,操作上有难度,主要用两种方法:1、迭代;2、递归答案type ListNode struct { Val int ...
2020-05-06 17:16:09
271
原创 LeetCode(golang):1、两数之和
1. 两数之和给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0,...
2020-04-20 17:00:08
229
原创 GO语言 数组的知识
package mainimport "fmt"func main(){ //数组声明 var arr [5]int arr[0] = 2 //类型为int,未初始化的就是0 fmt.Println(arr)//[2 0 0 0 0] //使用数组字面量声明数组 arr1 := [5]int{1,2,3,4,5} fmt.Println...
2020-03-08 22:09:26
132
原创 GO 语言 错误处理
1、go错误处理机制,没有try,catch 处理方式是:defer,panic,recover go抛出一个panic的异常,然后在defer中通过recover捕获这个异常func test(){ defer func(){ err := recover() if err != nil { fmt.Println("错误是:"...
2020-03-07 21:40:41
238
原创 GO 语言 内置函数
内置函数:由go提供的函数,可以直接使用1、len() :用于求长度,比如string,array,slice,map,channel arr := [3]int{1,2,3} fmt.Println("数组长度是:",len(arr))2、new :用来分配内存,int,float,struct等,返回的是指针 i := new(int) fmt.Printf(...
2020-03-07 19:35:41
340
原创 GO 语言 时间和日期
package mainimport ( "fmt" "time")func main(){ //go时间和日期 //获得时间日期需要导time包 //time.Time类型,表示时间 //获取当前时间 now := time.Now() fmt.Printf("type = %T,val=%v\n", now,now) //获取其...
2020-03-06 23:49:00
1330
原创 GO语言 关于字符串的一些函数
package mainimport ( "fmt" "strconv" "strings")func main(){ //统计字符串的长度,按字节len() //golang的编码同意为utf-8(ascii的字符(字母和数字)占一个字节,汉字占3个) str := "hello呗" fmt.Println("str len = ",len(st...
2020-02-27 19:05:10
256
原创 GO语言对方法传值和方法集的理解
go语言中的方法和函数的区别就是方法多了一个传值,例如:函数:func notify(){ fmt.Println("HelloWord")}方法:func (u *user) notify(){ fmt.Println(u.name)}首先要明确两个定义,一个就是方法定义时选择的接收者,也就是(u *user),可以是值接收者,也可以是指针接收者;另...
2020-02-10 16:18:27
364
原创 LeetCode(golang):3、无重复字符的最长子串
解决此题采用的是滑动窗口的解法,所谓窗口,就是一段字符串,通过将字符串一点点向后移动,达到遍历整个字符串中的子字符串,i是最左边的位置,j是最右边的位置,i和j同时从左边出发,此时字符串长度为1,没有重复字符,j向后移动一位,遍历子字符串的字符是否有和新添加的字符相等的,没有就记录此时字符串的长度为 [ i , j ],有就记录 i 的下一位为k,此时新的窗口字符串是[ k , j ]...
2020-01-20 11:16:39
390
原创 百度富文本编辑器ueditor,修改最大字数和字数限制问题
1、修改最大字数问题:后端修改:在ueditor.all.js和ueditor.config.js两个文件中分别搜索maximumWords,将值统一改成一样的,比如65535。但是此时在前端的数字还没有修改,在前端初始化ueditor的地方将maximumWords也改成65535就可以了var ue = UE.getEditor('content', { in...
2020-01-17 15:38:56
11263
1
原创 GO语言 函数底层
1、在调用一个函数是,会给该函数分配一个新的空间,编译器会通过自身的处理让这个新的空间和其他栈的空间区分开来。2、在每个函数对应的栈中,数据空间是独立的,不会混淆3、当一个函数调用完毕(执行完毕)后,程序会销毁这个函数对应的栈空间...
2020-01-17 11:10:07
191
原创 go 字符串遍历方式
1、传统方式,按字节遍历。var str string = "hello world"for i := 0; i < len(str) ; i++{ fmt.Printf("%c \n",str[i]) //使用下标}//h//e//l//l//o////w//o//r//l//d2、利用for -range,按字符遍历。for ind...
2020-01-15 16:29:47
2421
原创 LeetCode(golang):2、两数相加
/** [2] 两数相加*/// @lc code=start/*** Definition for singly-linked list.* type ListNode struct {* Val int* Next *ListNode* }*///函数开始func addTwoNumbers(l1 *ListNode, l2 *ListNo...
2020-01-15 16:16:18
281
原创 GO语言 指针类型
1、指针1)基本数据类型,变量存的就是值,也叫值类型2)获取变量的地址,用&,比如:var n int ,获取n的地址:&num3)指针类型,指针变量存的是一个地址,这个地址指向的空间存的才是值,比如:var ptr *int = &n, 同时指针变量也占了一个空间,也能打印它的地址:fmt.Printf("ptr的地址是:%v",&ptr)...
2020-01-14 15:14:06
786
原创 php 数据库存储表情包
数据库存储表情包,一般utf-8编码存进去会变成?????,把表情包的数据转成base64编码再存就可以了当取数据的时候再转回来,我是有普通字符串和表情包放在一起转码存的,再一起解码返回输出。utf-8转base64:$str = base64_encode($str);base64转utf-8:$str = base64_decode($str);...
2020-01-13 18:47:42
388
原创 GO语言 基本数据类型的转换,字符串和其他类型的转换
1、go在不同类型的变量之间赋值时需要显示转化(强制转换), 表达式T(v)将值v转换为类型 T:就是数据类型,比如int32,int64,float32等等 v:就是需要转换的变量 var i int = 42 var f float64 =float64(i) var u uint8 = uint8(f) ...
2020-01-09 19:53:41
731
原创 GO语言 基本数据类型的默认值
1、默认值 整型 int: 0 浮点型 float: 0 字符串 string : "" 布尔类型 bool :false例子: var a int var b float32 var c float64...
2020-01-09 17:17:11
1143
原创 GO语言 字符串类型
(声明:此文章是本人学习尚硅谷的go语言核心编程课程所做的笔记,仅供学习使用,想看原版教学视频的请到官网,如有不妥联系本人删除)1、字符串就是一串固定长度的字符连接起来的字符序列。但go的字符串是由单个字节连接起来的, go的字符串的字节使用UTF-8编码标识unicode文本。例子: package main import "fmt" fun...
2020-01-09 16:36:06
319
原创 GO语言 布尔类型
(声明:此文章是本人学习尚硅谷的go语言核心编程课程所做的笔记,仅供学习使用,想看原版教学视频的请到官网,如有不妥联系本人删除)1、布尔类型。1)布尔类型也叫bool类型,bool类型数据只允许取值true和false2)boo类型占一个字节3)bool类型适用于逻辑运算,一般用于程序流程控制例子:package mainimport ( "fmt" "u...
2020-01-09 16:12:59
413
原创 GO语言 字符类型
(声明:本文章是本人学习尚硅谷的go语言核心编程课程所做的笔记,仅供学习使用,想看原版教学视频的请到官网,如有不妥联系本人删除)1、字符类型:go没有没有专门的字符类型,如果要存储单个的字符或字母,一般用byte来保存,(byte是uint8,8位,0~255,一个字节)。 字符串:传统的字符串有字符组成,go的字符串有一个个的字节组成。例子: var c1...
2020-01-09 15:38:16
1200
原创 postman测试api接口
在后端开发中使用postman测试接口,POST请求,参数为数组形式:注意,数组里的参数不用加双引号或者单引号POST请求,JSON格式:POST请求,上传图片或者文件:鼠标放在上面选择text或者file格式,后面选择文件。...
2019-12-26 17:22:36
561
原创 tp5上传多张图片
上传多张图片,重点在于处理图片的整个的过程逻辑,在添加商品的时候,同时上传多张图片。首先分析问题,上传商品,需要一个商品表product,存商品的详细信息;上传图片,需要一个图片表img,来存图片的路径等详细信息;如果只上传一张图片,那么可以在商品表上加一个图片的img_id字段来找到商品图片,但是这里是一个商品对应多张图片,就需要再建立一个中间表product_img来...
2019-12-25 14:09:17
1166
原创 微信小程序调试正确,没有错误,但是体验版没有数据
踩坑:我在本地调式都没有错误,但是上传到体验版就看不到应该有的商品数据,在开发工具上,真机调试没有错误,预览还是没有数据,在百度看到了这篇文章https://blog.youkuaiyun.com/Douz_lungfish/article/details/81741437才找到了原因,一般开发的时候就习惯性的关闭了校验合法域名的选项,我之前小程序配置的是另一个域名,换域名后在微信后台没有改新...
2019-12-22 19:30:27
8029
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人