今天看linux内核驱动的代码,发现一个算法写得挺简单,也有意思。...分享一下我的测试代码: #include typedef int U32 ; U32 String2Dec( const char *pstr ) { char...ch; U32 value; value = 0; //从字符串的第一个字符遍历到'\0' while( *pstr !...//判断字符是否在0-9这个范围 if( ch >= '0' && ch <= '9' ) { //ch-'0'相当于将字符转换为整数
2022-12-22:给定一个数字n,代表数组的长度,给定一个数字m,代表数组每个位置都可以在1~m之间选择数字,所有长度为n的数组中,最长递增子序列长度为3的数组,叫做达标数组。返回达标数组的数量。...1 的时候没有取模的逻辑,因为非重点。来自微众银行。...// f、s、t : ends数组中放置的数字!...// n : 一共的长度!// m : 每一位,都可以在1~m中随意选择数字// 返回值:i..... 有几个合法的数组!...// 尤其是理解ends数组的意义!fn number2(n: i32, m: i32) -> i32 { //repeat(vec!
2023-04-28:将一个给定字符串 s 根据给定的行数 numRows 以从上往下、从左到右进行 Z 字形排列 比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排列如下 P A...H N A P L S I I G Y I R 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串 "PAHNAPLSIIGYIR" 请你实现这个将字符串进行指定行数变换的函数 string convert...在遍历的过程中,根据当前所在行的位置 i 和周期 t,计算出对应列的顶部的行号 nextColTop。 6.对于每个字符 s[j],将其填入字符数组 ans 中,并将 fill 指针向后移动一位。...如果该字符所在的行不是第 0 行和最后一行,并且在下一个周期中对应的位置 nextColTop-i 小于字符串的长度 n,则将 s[nextColTop-i] 也填入 ans 数组中,并将 fill 指针再次向后移动一位...空间复杂度:O(n),我们需要使用一个字符数组 ans 存储变换后的字符串,数组的大小为输入字符串 s 的长度 n。另外,我们还使用了常数级别的额外空间存储变换时需要的一些变量。
字节长度取决于编码方式 # utf8中一个字母占一个字节,一个汉字占3个字节 SELECT LENGTH('John'); SELECT LENGTH('张三'); #CONCAT(str1,str2...# INSTR(str,substr) ,返回子字符串在原字符串中的索引 SELECT INSTR('Hello World','Wor') AS result; # TRIM([{BOTH |...where语句筛选,位置在group_by字句的前面 分组后的筛选:分组后的筛选是利用已经重新分配的组内的信息进行筛选,这些信息不直接存储于数据库中。...`department_id`; # 外连接 /* 用于查询一个表中有,另一个表中没有的记录 特点: 外连接的查询结果为主表中的所有记录 如果表中有和它匹配,则显示匹配的值 如果没有匹配值...(多行多列或0行0列都不可以) # 列子查询(多行子查询,因为子查询结果是一列多行) /* 多行操作符: IN/NOT IN 等于/不等于列表中的任意一个 ANY/SOME 和子查询中的某个值作比较
2023-04-28:将一个给定字符串 s 根据给定的行数 numRows以从上往下、从左到右进行 Z 字形排列比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排列如下P A...H NA P L S I I GY I R之后,你的输出需要从左往右逐行读取,产生出一个新的字符串"PAHNAPLSIIGYIR"请你实现这个将字符串进行指定行数变换的函数string convert...在遍历的过程中,根据当前所在行的位置 i 和周期 t,计算出对应列的顶部的行号 nextColTop。6.对于每个字符 sj,将其填入字符数组 ans 中,并将 fill 指针向后移动一位。...如果该字符所在的行不是第 0 行和最后一行,并且在下一个周期中对应的位置 nextColTop-i 小于字符串的长度 n,则将 snextColTop-i 也填入 ans 数组中,并将 fill 指针再次向后移动一位...空间复杂度:O(n),我们需要使用一个字符数组 ans 存储变换后的字符串,数组的大小为输入字符串 s 的长度 n。另外,我们还使用了常数级别的额外空间存储变换时需要的一些变量。
2022-12-22:给定一个数字n,代表数组的长度, 给定一个数字m,代表数组每个位置都可以在1~m之间选择数字, 所有长度为n的数组中,最长递增子序列长度为3的数组,叫做达标数组。...返回达标数组的数量。 1 <= n <= 500, 1 <= m <= 10, 500 * 10 * 10 * 10, 结果对998244353取模, 实现的时候没有取模的逻辑,因为非重点。...// f、s、t : ends数组中放置的数字!...// n : 一共的长度! // m : 每一位,都可以在1~m中随意选择数字 // 返回值:i..... 有几个合法的数组!...// 尤其是理解ends数组的意义! fn number2(n: i32, m: i32) -> i32 { //repeat(vec!
对于数据库来说,\n 只是一个普通字符,整个字符串还是一行。因此要实现 \n 分割的多行统计,需要将单行拆分为多行,再进行后续的匹配和汇总求和。...按固定分隔符将一行分成多行的经典方法,就是先使用笛卡尔积连接制造出行,再用两个嵌套的substring_index函数取子串。...(subpattern),就是指分组中的一个或多个分组。...三、捕获分组和后向引用 当一个模式的全部或者部分内容由一对括号分组时,它就对内容进行捕获并临时存储于内存中。可以通过后向引用引用捕获的内容,形式为 \1 或 1 。...如果表达式的其余部分不匹配,则正则表达式将返回到先前记录的位置并尝试其他组合。如果使用了原子分组,则正则表达式引擎将不会跟踪先前的位置,而只会放弃匹配。
from emp; 单字段分组查询 掌握group by的使用 需求一:公司中要求每个部门一组进行拔河比赛 需要部门列的内容需要重复 select * from emp job和deptno有重复内容...,最好对有重复内容的列进行分组 需求二:在一个班级中要求男女各一组进行辩论比赛 语法: select 分组字段|统计函数 from 表明 group by 分组字段 分组使用group by子句时,但是此时...,select字句中不允许出现任何字段,包括分组字段 范例: 求出每个部门平均工资最高的工资 按照部门分组,而后统计处每个部门的平均数值,那么针对这些统计结果求出一个最大值 范例: 查询每个部门的名称、...在having中的子查询一般会返回单行单列,是以一个数值的方式返回 范例:查询部门编号、雇员人数、平均工资,并且要求部门平均工资高于公司的平均工资 范例:查询每个部门平均工资最高的部门名称以及平均工资...(在统计函数嵌套使用时select字句中不允许出现任何字段,包括分组字段) 3、from 主要功能是确定数据的来源,来源都是数据表(行+列的集合),所以一般都是多行多列子查询 范例:查询出每个部门的编号
2023-01-06:给定一个只由小写字母组成的字符串str,长度为N,给定一个只由0、1组成的数组arr,长度为N,arri等于 0 表示str中i位置的字符不许修改,arri 等于 1表示str中i...位置的字符允许修改,给定一个正数m,表示在任意允许修改的位置,可以把该位置的字符变成a~z中的任何一个,可以修改m次。...返回在最多修改m次的情况下,全是一种字符的最长子串是多长。1 的时候...'a'; aim 的时候
分组查询: 分组函数:作用于一组数据,并对一组数据返回一个值。 1、常用的分组函数:AVG,SUM,MIN,MAX,COUNT,WM_CONCAT AVG:平均值。SUM:求和。...count(empno) from emp; select count(distinct depno) from emp;//去除重复值,用于返回唯一不同的值 行转列:每个部门下的员工姓名 set...by中使用; 5、from后面的子查询; 将子查询的结果作为一个表。 ...(sal) from emp); 多行子查询操作符:IN,ANY,ALL 查找部门为sales或者accounting的员工信息: select * from emp where deptno...,为两个表都取别名 使用instr(a,b)函数,该函数的含义为:如果字符串b在字符串a里面,则返回的是b在a中的位置,即返回值大于0 需要用到分组查询 使用wm_concat(cols)函数对学生姓名用逗号拼接
2024-09-28:用go语言,给定一个字符串s,要求判断是否存在一个长度为2的子字符串, 在其反转后的字符串中也存在相同的子字符串。...解释:子字符串 "ee" 的长度为 2,它也出现在 reverse(s) == "edocteel" 中。 答案2024-09-28: chatgpt 题目来自leetcode3083。...大体步骤如下: 1.我们在主函数main中首先初始化字符串s为"leetcode",然后调用isSubstringPresent来检查是否存在符合条件的子字符串。...2.在isSubstringPresent函数中,我们定义了一个长度为26的数组vis来表示字母的出现情况。...总的时间复杂度: • 遍历整个字符串s需要O(n)时间,其中n为字符串s的长度。 • 每个字符的操作都是常数时间的。 • 所以总的时间复杂度为O(n)。
以下语法将返回column中保存的值的总数: SELECT COUNT(column) FROM table; 您可以通过附加一个WHERE子句来缩小COUNT函数的结果范围,如下所示: SELECT...找到列中的最大值 要按字母顺序查找列中的最大数值或最后一个值,请使用以下MAX函数: SELECT MAX(column) FROM table; 查找列中的最小值 要按字母顺序查找列中的最小数值或第一个值...以下语法将计算column_2中匹配值的数量,并按升序或字母顺序对它们进行分组: SELECT COUNT(column_1), column_2 FROM table GROUP BY column_...INNER JOIN将返回两个表中具有匹配值的所有记录,但不会显示任何没有匹配值的记录。 通过使用外部 JOIN子句,可以从两个表中的一个表中返回所有记录,包括在另一个表中没有相应匹配的值。...table UNION SELECT column_2 FROM table; 此外,UNION子句可以将查询不同表的两个(或更多)SELECT语句组合到同一个结果集中: SELECT column
,新的内容) 5、 字符串截取操作: · 由指定位置截取到结尾:字符串 SUBSTR(字符串 | 数据列,截取开始索引); · 指定截取的开始和结束位置:字符串 SUBSTR(字符串 | 数据列,截取开始索引...,截取结束索引); 字符串的索引下标是从 1 开始的 SUBSTR()函数还可以设置为负数,表示由后的指定位置开始 6、 去掉左右空格函数:字符串 TRIM(字符串 | 列) 数字函数 1、 四舍五入函数...234789234798,'L999,999,999,999,999') FROM dual 2、 转日期数据:日期 TO_DATE(字符串,转换格式) 范例:将字符串变为日期 SELECT '1981...3、 转数字类型:数字 TO_NUMBER(字符串,转换格式) 范例:将字符串变为数字 SELECT TO_NUMBER('1') + TO_NUMBER('2') FROM dual ; SELECT...这些函数能在select或select的having子句中使用,当用于select子串时常常都和GROUP BY一起使用。多行函数分为接收多个输入,返回一个输出。
普通的聚合函数用group by分组,每个分组返回一个统计值,返回的字段名只能是分组名。...ROLLUP,是GROUP BY子句的一种扩展,可以为每个分组返回小计记录以及为所有分组返回总计记录。...FIRST 功能描述:从DENSE_RANK返回的集合中取出排在最前面的一个值的行(可能多行,因为值可能相等),因此完整的语法需要在开始处加上一个集合函数以从中取出记录。...LAST 功能描述:从DENSE_RANK返回的集合中取出排在最后面的一个值的行(可能多行,因为值可能相等),因此完整的语法需要在开始处加上一个集合函数以从中取出记录。...(默认为1) 第五个是指定返回值的类型,如果该参数为0,则返回值为匹配位置的第一个字符,如果该值为非0则返回匹配值的最后一个位置。
语句的结果集中的一行或多行的“窗口”中获取的,通过OVER子句,窗口函 数与其他SQL函数有所区别。...如果它缺少OVER子句,则它是一个普通的聚合函数。...•assert_true: 如果’condition’不为真,则引发异常,否则返回null常见的分组排序函数 row_number:在每个分组中,为每行分配一个从1开始的唯一序列号,递增,不考虑重复;...rank: 在每个分组中,为每行分配一个从1开始的序列号,考虑重复,挤占后续位置; dense_rank: 在每个分组中,为每行分配一个从1开始的序列号,考虑重复,不挤占后续位置; 聚合函数 max(...)|min()|sum()|count()|avg() explode函数 explode函数接收map或者array类型的数据作为参数,然后把参数中的每个元素炸开变成一行数据。
总的想法是,首先对评论字符串以“]”为分隔符转多行,然后针对不同情况对每行求字符长度,之后按每条评论ID分组求和,得到符合规则的每条评论的长度,最后按评论长度分组进行二次聚合,得到每种长度的个数。...9-11行中的子查询为每个带有“]”符号,并且最后一个字符不是“]”的评论尾部拼接一个“]”字符。...这是针对类似ID为44132703的这种中括号出现在评论字符串中间的情况,只有这样才能用统一方法进行转多行的操作。...8-11行中的子查询,得出每条评论中成对中括号的个数(l1列),0表示评论字符串中没有成对的中括号,结果如下: 图片 7-12行中的子查询,结果为使用以“]”为分隔符转的多行: 图片...l1=0 时直接求长度,如“舞姿优美”、“[礼物b,永远支持你 [礼物b,,”;否则,字符串中没有出现“[”的,也直接求长度,如“ 赞赞赞赞赞”;否则,“[”是第一个字符的,表示是中括号中的字符串,按规则其长度为
1,字段2)value(插入数据) 插入多行数据 插入多行需要存储在数据库的数据记录 INSERT INTO 表名 (字段1,字段2)value(插入数据1),(插入数据2) 将查询结果插入新表第一种...max() 返回某字段的最大值 min() 返回某字段的最小值 sum() 返回某字段的总和 常勇字符串函数 函数名 作用 举例 concat(STR1,STR2) 连接字符串str1,str2为一个完整的字符串...将str所有的字符串改为大写 sql upper(sql)返回:SQL SUBSTRING(STR,NUM,LEN) 返回字符串str的第num个位置开始长度为len的子字符串 substring(‘javaMysqlOracle...返回:2021-3-5-15-39-45 week(date) 返回日期date为一年中的第几周 SELECT WEEK(NOW());返回9 year(date) 返回日期date的年份 SELECT...//在小括号中,再来一次查询,作为一个条件,来与条件1判断 NOT IN 子查询 问题:如果我们想要获得与in子查询相反的结果, 解决方案:不需要去进行过多的代码操作,只需要在代码中的 in 前加一个
.返回子串在主串中第一次出现的起始位置,找不到返回0 8.trim: 移除字符串的首尾信息。...case,if,ifnull函数,在返回值的位置,不单单可以使用常量,还可以使用字段 用elt函数判断连续的整数数字(从1开始),比case方便 FIELD函数返回字符串的在列表中的索引值 分组函数-...,找不到返回0 注意:sql中索引从1开始 SELECT INSTR('哈哈哈大忽悠哈哈哈','大忽悠') 姓名位置; 8.trim: 移除字符串的首尾信息。...列表中的索引(位置从1开始)。 如果str没有找到 返回值为0。 ---- 分组函数—忽略null值 功能: 做统计使用,又称统计函数,聚合函数,组函数。...---- 列子查询(多行子查询) 多行比较操作符: in/not in: 等于列表中某一个值/不等于列表中任意一个值 any/some: a>any(10,20,30)–>a大于any括号里面任意一个值就成立
2.排序中的空值问题 当排序时有可能存在null 时就会产生问题,我们可以用nulls first , nulls last 来指定null 值 显示的位置。...也叫:组函数、分组函数 组函数会忽略空值;NVL 函数使分组函数无法忽略空值 11 常用的多行函数 多行函数示例 1.统计记录数count() 范例:查询出所有员工的记录数...sum() 范例:查询出20 号部门的员工的工资总和 分组数据 范例:查询每个部门的人数 11 范例:查询出每个部门的平均工资 范例:查询出来部门编号,和部门下的人数 我们发现报了一个...那么 select 语句中只能查询分组使用的列 和 聚合函数 */ --查询每个部门的平均工资 select deptno,avg(sal) from...--将job和部门做分组 select job,deptno,count(*) from emp group by deptno,job --查询部门平均工资>2000的部门编号
领取专属 10元无门槛券
手把手带您无忧上云