- 博客(18)
- 收藏
- 关注
原创 KMP算法详解
KMP算法模式匹配:子串定位运算,即在主串中找出子串出现的位置。在串匹配中,将主串 S 称为目标串,子串 T 称为模式串。如果在主串 S 中能够找到子串 T,则称,匹配成功,返回第一个和子串 T 中第一个字符相等的字符在主串 S 中的序号;否则称为匹配失败,返回 0 。串的存储结构串的存储结构如下:typedef struct { char *ch; // 若非空则按串长分配存储区,否则 ch 为 NULL int length; // 串长度
2021-10-09 15:56:52
319
原创 一次编辑 Go语言
面试题 01.05. 一次编辑 Go语言题目:字符串有三种编辑操作:插入一个字符、删除一个字符或者替换一个字符。 给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑。func oneEditAway1(first string, second string) bool { if diff := len(first) - len(second); diff < -1 || diff > 1 { return false } for i, j, com := 0,
2022-05-13 10:35:21
157
原创 二进制间距 Go语言
二进制间距题目:给定一个正整数 n,找到并返回 n 的二进制表示中两个相邻 1 之间的最长距离 。如果不存在两个相邻的 1,返回 0 。如果只有 0 将两个 1 分隔开(可能不存在 0 ),则认为这两个 1 彼此 相邻 。两个 1 之间的距离是它们的二进制表示中位置的绝对差。例如,"1001" 中的两个 1 的距离为 3 。// 双指针法func binaryGap(n int) int { s := fmt.Sprintf("%b", n) distance, temp := 0,
2022-04-24 10:34:20
168
原创 插入后的最大值 Go语言
插入后的最大值题目:给你一个非常大的整数 n 和一个整数数字 x ,大整数 n 用一个字符串表示。n 中每一位数字和数字 x 都处于闭区间 [1, 9] 中,且 n 可能表示一个负数 。你打算通过在 n 的十进制表示的任意位置插入 x 来 最大化 n 的数值 。但不能在负号的左边插入 x 。例如,如果 n = 73 且 x = 6 ,那么最佳方案是将 6 插入 7 和 3 之间,使 n = 763 。如果 n = -55 且 x = 2 ,那么最佳方案是将 2 插在第一个
2022-04-23 15:40:39
239
原创 相同的树 Go语言
相同的树题目:给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。// 深度优先搜索func isSameTree2(p *TreeNode, q *TreeNode) bool { if p == nil && q == nil { return true } if p == nil || q == nil { return false } if p.Val !=
2022-04-21 16:43:27
109
原创 山羊拉丁文 Go语言
山羊拉丁文题目:给你一个由若干单词组成的句子 sentencesentencesentence ,单词间由空格分隔。每个单词仅由大写和小写英文字母组成。请你将句子转换为 “山羊拉丁文(GoatGoatGoat LatinLatinLatin)”(一种类似于 猪拉丁文 PigPigPig LatinLatinLatin 的虚构语言)。山羊拉丁文的规则如下:如果单词以元音开头('a', 'e', 'i', 'o', 'u'),在单词后添加"ma"。例如,单词 "apple" 变为 "appl
2022-04-21 16:17:32
227
原创 字符的最短距离 Go语言
字符的最短距离题目:给你一个字符串 sss 和一个字符 ccc ,且 ccc 是 sss 中出现过的字符。返回一个整数数组 answeransweranswer ,其中 answer.length == s.length 且 answer[i] 是 sss 中从下标 i 到离它最近的字符 ccc 的距离 。两个下标 i 和 j 之间的 距离 为 abs(i - j) ,其中 abs 是绝对值函数// 双指针法,记录每次字符 c 出现的位置和上一次出现的位置,同时每次更新最近距离数组
2022-04-19 17:26:32
237
原创 字典序排数 Go语言
字典序排数题目:给你一个整数 n ,按字典序返回范围 [1, n] 内所有整数。你必须设计一个时间复杂度为 O(n) 且使用 O(1) 额外空间的算法。// 深度优先遍历func lexicalOrder(n int) []int { ans := make([]int, 0, n) for i, num := 0, 1; i < n; i++ { ans = append(ans, num) if num*10 <= n { num *= 10 } e
2022-04-18 10:27:49
527
原创 合并两个有序数组 Go语言
合并两个有序数组题目:给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。// 合并两
2022-04-18 09:15:16
2273
原创 删除有序数组中的重复项 Go语言
删除有序数组中额重复项题目:给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素只出现一次 ,返回删除后数组的新长度。元素的相对顺序应该保持 一致 。由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。将最终结果插入 nums 的前 k 个位置后返回 k 。不要使用额外的空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成
2022-04-15 10:07:37
568
原创 括号匹配 Go语言
括号匹配 Go语言题目:给定一个只包括'(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。// 利用 map 和栈func isValid(s string) bool { n := []byte{} if len(s)%2 == 1 { return false } bracket := map[byte]byte{ ')': '(', ']':
2022-04-15 09:48:21
461
原创 最后一个单词的长度 Go语言
最后一个单词的长度 Go语言题目:给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。单词:是指仅由字母组成、不包含任何空格字符的最大子字符串。这里为大家介绍三种方法,直接上代码// 利用Go语言内置函数将字符串转化为数组,然后反向寻找第一个不是空格的元素,返回该元素的长度func lengthOfLastWord1(s string) int { m := strings.Split(s, " ") for m[len(m)-1] == ""
2022-04-12 10:02:04
553
原创 JavaScript 移动元素并使其原路返回
JavaScript 移动元素并使其原路返回<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <style> .box { height: 200px; width: 200px; pos
2022-04-12 09:25:24
1019
原创 数据库系统概念 第三章 SQL介绍
文章目录第 3 章 SQL 介绍3.1 SQL 查询语言概览3.2 SQL 数据定义3.2.1 基本类型3.2.2 基本模式定义3.3 SQL 查询的基本结构3.3.1 单关系查询3.3.2 多关系查询3.4 附加的基本运算3.4.1 更名运算3.4.2 字符串运算3.4.3 select 字句中的属性说明3.4.4 排列元组的显示次序3.4.5 子句谓词3.5 集合运算3.5.1 并运算3.5.2 交运算3.5.3 差运算3.6 空值3.7 聚集函数3.7.1 基本聚集3.7.2 分组聚集3.7.3 ha
2022-02-27 16:35:23
1695
原创 海明校验码
海明校验码海明码原理在 k 位数据中增加 r 位校验位构成 n + k 位码字,附加的 r 位校验位能够均匀的拉大,每个校验位对码字中的若干位进行奇偶校验,这样当某一位出错后,会引起几个校验位的值的变化。这样既能检测出错误,又可以位纠错提供依据。海明码编码规律校验位数:假设有 r 位校验码,k 位有效数据位,则有关系:2r - 1 ≥ k + r校验码分布位置各校验码分布在位号为 2i-1 的位置,即校验位的位置分别在 1、2、4、8……,其余为数据位。校验关系(此处
2021-09-27 21:09:10
5814
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅