首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏C++信息学奥赛

    杨校老师课堂之字符排序算法——排序结合字符标记专项题单

    一、知识重点(一)字符的本质:数组映射字符核心逻辑:用数组下标映射字符的 ASCII 值,数组元素存储字符出现的次数(或是否出现)。 (二)字符的 3 大典型应用场景1. 统计每个字符的出现次数(字符的统计)2. 找出现次数最多的字符字符的计数)3. 找未出现的字符字符的存在)(三)字符的关键知识点知识点说明数组与 ASCII 的映射利用字符的 ASCII 码作为数组下标,实现 “字符→次数” 的直接映射数组的初始化需覆盖目标字符的 ASCII 范围(如小写字母 97-122,大写字母 65-90)遍历与筛选逻辑通过循环遍历数组,结合条件判断(>0/==0/>maxx)筛选结果字符与整数的转换输出时用 (char)i 将 ASCII 值转回字符 ;输入时 char c 直接存 ASCII 值(四)字符的扩展与进阶支持更多字符:若涉及中文或特殊字符,需用 ** Unicode 编码 **(如 wchar_t 或字符串统计),但基础思想一致(用下标映射编码值

    20700编辑于 2025-07-03
  • 来自专栏面向加薪学习

    11.Rust-字符

    Rust 语言提供了两种字符串Rust 核心内置的数据类型&str,字符串字面量 。Rust 标准库中的一个 公开 pub 结构体。字符串对象 String。 字符串字面量模式是 静态 的,所以,字符串字面量从创建时开始会一直保存到程序结束。字符串对象字符串对象并不是 Rust 核心内置的数据类型,它只是标准库中的一个 公开 pub 的结构体。 新建字符串对象String::new() //创建一个新的空字符串,它是静态方法。String::from() //从具体的字符串字面量创建字符串对象。 ("字符: {}",c);}//输出字符: 从字符: 0字符: 到字符: G字符: o字符: 语字符: 言字符: 微字符: 服字符: 务字符: 架字符: 构字符: 师字符串拼接 ++ 的内部实现是重写了 let s11="Go语言极简一本通".to_string();let s12 = " 欢喜".to_string();let result2=s11 + &s12;println!

    66130编辑于 2022-09-04
  • 来自专栏SAMshare

    【LeetCode11】反转字符

    温故而知新 【LeetCode01】找到字符串中最长的回文字串 【LeetCode02】找出不含重复字符的 最长子串 的长度 【LeetCode03】查找字符串最长公共前缀 【LeetCode04】最接近的三数之和 【LeetCode05】删除排序数组中的重复项 【LeetCode06】反转字符串中的单词 【LeetCode07】旋转矩阵(一) 【LeetCode08】字符串转换整数 【LeetCode09】有效的括号 【LeetCode10】盛最多水的容器 今日挑战 编写一个函数,其作用是将输入的字符串反转过来。 输入字符串以字符数组 char[] 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。

    68130发布于 2019-07-08
  • 来自专栏Albert陈凯

    2018-11-28 学习SpringBoot的福音~Spring Boot 全家 SpringBootBucket

    Spring Boot 现在已经成为Java 开发领域的一颗璀璨明珠,它本身是包容万象的,可以跟各种技术集成。

    1.2K50发布于 2018-12-19
  • 来自专栏算法其实很好玩

    Day11-字符串-无重复字符最长子串

    二 来吧 Q:已知一个字符串,求用该字符串的无重复字符的最长子串(有的要求求长度,今天直接求子串) 这时候你脱口而出:这还不简单,把一个字符串的所有可能结果全列出来,然后根据无重复字符这个条件过滤呗 因为一旦出现重复字符,后面的枚举都没有意义了? ? 我们可以这样处理逻辑: 1.建立字符哈希char_map,来保存字符数量 2.建立一个,当前满足条件的最长子串,即字符串word 3.建立,遍历到当前字符时,最长的子串,即字符串result ,最终返回的就是result 4.建立两个指针(i和begin)都指向字符串第一个字符 5.i指针从头向后遍历字符串,用char_map记录字符数量 如果word中,没出现过该字符 : 对word尾部添加该字符,并检查result是否需要更新 如果word中,出现了该字符: 将begin指针向后移动,更新char_map中字符数量

    52210发布于 2019-07-15
  • 来自专栏X

    C++ 11字符数组字符串数字转换字符串拼接

    文章目录 一、num转string 1.1 int型数字转字符串 1.2 float/double型数字转字符串(不补0) 二、string转num 2.1 使用stringstream类处理 2.2 stof(s) stof(s,p) 把字符串s从p开始转换成float double stod(s) stod(s,p) 把字符串s从p开始转换成double long stol(s) stol( (String)和数值转换》 转换数字的类型 默认 功能 int atoi(s) 将字符串s[n]转换为整型值 double atof(s) 将字符串s[n]转换为double long atol(s ) 将字符串s[n]转换为long 四、char[]与string的相互转换 4.1 字符数组char[]转换string(直接赋值即可) char ch[100] = "Hellow World"; [2] C++中的字符串(String)和数值转换

    3.7K20发布于 2021-09-18
  • 来自专栏weixuqin 的专栏

    leecode刷题(11)-- 反转字符

    leecode刷题(11)-- 反转字符串 反转字符串 描述: 编写一个函数,其作用是将输入的字符串反转过来。 "A man, a plan, a canal: Panama" 输出: "amanaP :lanac a ,nalp a ,nam A" 思路: 其实这道题我们很容易可以想到使用数组下标的方法,将字符串转换为 其中观察反转字符串可以知道,两个反转字符字符的下标之和为字符串长度 - 1。 比如示例1 中,h 对应数组下标为 0,反转后的 h 对应数组下标为 4, 0 + 4 = 5 -1。 reverseString.reverseString(s)); } } 优化: 上边我们使用了交换数组下标的方法,其实java中有个函数叫 charAt(),解释如下: charAt() 方法用于返回指定索引处的字符 System.out.println(reverseString.reverseString(s)); } } 但其实java中还有个更简单的反转函数 reverse(),就可以用来反转字符

    53930发布于 2019-02-15
  • 来自专栏Devops专栏

    11.Go复合类型-字符

    11.Go复合类型-字符串 前言 上一章节,我们已经学习了切片,本章节来看看 字符串。 3:字符串 我们从文件中将数据读取出来以后,很多情况下并不是直接将数据打印出来,而是要做相应的处理。 这里就涉及到对一些字符串的处理。 在对字符串进行处理时,需要借助于包“strings” 下面讲解一下常用的字符串处理函数: Contains func Contains(s,substr string)bool 功能:字符串s中是否包含 func Replace(s,old,new string,n int)string 功能:在s字符串中,把old字符串替换为new字符串,n表示替换的次数,小于0表示全部替换 示例: fmt.Println 练习题 练习1:从日期字符串("2008-08-08")中分析出年、月、日;2008年08月08日。

    34220编辑于 2022-01-17
  • 来自专栏C/C++基础

    C++11 原生字符

    C++作为一门高级程序设计语言,自然不能自甘落后,从C++11开始,C++也开始支持原生字符串。 很多时候,当我们需要一行字符串的时候,字符串转义往往成了一个负担,写和读都带了很大的不便。 在C++ 11中,它的非转义形式为: string path = R"(D:\workdataDJ\code\vas_pgg_proj)"; 从上面的例子中可以看出,C++的语法格式如下: (1)字符串前加 escaped"; 2.原生字符串与Unicode字符串结合 由于C++11对Unicode的支持,原生字符串的定义方式可以与Unicode字符串结合使用,定义UTF-8、UTF-16和UTF-32的原生字符串 ,整个字符串“你好=hello”含有两个UTF-8编码的中文字符,共占6字节,和6个ASCII字符,再加上自动生成的空字符\0,字符串共占用13字节空间。 UTF-8与UTF-16两种不同编码的字符在连接时,编译报错,C++目前还不支持这种写法,请避免。 ---- 参考文献 [1]深入理解C++11[M].8.4原生字符串字面量

    4.2K31发布于 2018-09-27
  • 来自专栏用户2442861的专栏

    排序

    每个桶子再个别排序(有可能再使用别的排序算法或是以递回方式继续使用排序进行排序)。排序是鸽巢排序的一种归纳结果。当要被排序的阵列内的数值是均匀分配的时候,排序使用线性时间(Θ(n))。 总共有100个。然后对A[1..n]从头到尾扫描一遍,把每个A[i]放入对应的B[j]中。 然后再对这100个中每个里的数字排序,这时可用冒泡,选择,乃至快排,一般来说任何排序法都可以。 最后依次输出每个里面的数字,且每个中的数字从小到大输出,这样就得到所有数字排好序的一个序列了。          假设有n个数字,有m个,如果数字是平均分布的,则每个里面平均有n/m个数字。 因为输入数均匀分布在[0,1)上,所以一般不会有很多数落在一个中的情况。为得到结果,先对各个中的数进行排序,然后按次序把各中的元素列出来即可。 当然排序的空间复杂度为O(N+M),如果输入数据非常庞大,而的数量也非常多,则空间代价无疑是昂贵的。此外,排序是稳定的。

    76240发布于 2018-09-14
  • 来自专栏我的博客

    排序

    排序 (Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶子里。 每个桶子再个别排序(有可能再使用别的排序算法或是以递归方式继续使用排序进行排序) 思想: 设待排序序列的元素取值范围为0到m,则我们新建一个大小为m+1的临时数组并把初始值都设为0,遍历待排序序列

    72660发布于 2018-04-28
  • 来自专栏用户1175783的专栏

    # 排序

    # 排序 # 原理 求出无序集合的最大值与最小值(这里的最小值指存在负数的情况),创建对应的数组长度 length=max+1 这里要处理一下负数 if min<0: length+=abs(min) 该length就是数组的长度,并创建这个数组将所有值初始化为0 然后遍历无须数组,修改中元素的个数(数组所以对应的值就是无需数组中相同值的个数) 最后只需要将数组中值大于 # 实现 inputArr = [ 11,10,199383, 34, -1,-32,-29, 4, 0, 34, 5, 4, 36, 1, 8, 123, 453, 1008] print("未排序集合 minItem>item): minItem=item # 最小值,最大值 print("min:{0}\tmax:{1}".format(minItem,maxItem)) # 创建数组 minItem<0): length+=abs(minItem) bigArr=[0]*length for item in inputArr: bigArr[item]+=1 # 将中的数据放到对应的有序数组上

    44820发布于 2019-09-10
  • 来自专栏数据结构与算法

    排序

    排序        排序的思想是若待排序的记录的关键字在一个明显有限范围内(整型)时,可设计有限个有序,每个桶装入一个值(当然也可以装入若干个值),顺序输出各的值,将得到有序的序列。 100001]; 5 int maxn=-1; 6 int main() 7 { 8 int n; 9 cin>>n; 10 for(int i=1;i<=n;i++) 11

    61190发布于 2018-04-12
  • 来自专栏Jed的技术阶梯

    排序

    排序是一种排序的思想,其实现包括计数排序和基数排序两种,冒泡排序、选择排序、插入排序、归并排序、快速排序和堆排序都是基于比较的排序,而排序提出了一种新的思路,即基于数据状态的排序。 1. 排序的思想 (1) 得到无序数组的取值范围 ? (2) 根据取值范围"创建"对应数量的"" ? (3) 遍历数组,把每个元素放到对应的""中 ? (4) 按照顺序遍历中的每个元素,依次放到数组中,即可完成数组的排序。 ""是一种容器,这个容器可以用多种数据结构实现,包括数组、队列或者栈。 2. ,总的来说为O(n) 稳定性:排序是否稳定取决于""用什么数据结构实现,如果是队列,那么可以保证相同的元素"取出去"后的相对位置与"放进来"之前是相同的,即排序是稳定的,而如果用栈来实现"",则排序一定是不稳定的 ,因为排序可以做到稳定,所以排序是稳定的排序算法 3.

    1.2K60发布于 2019-05-09
  • 来自专栏后端知识体系

    排序

    # LeetCode-排序 排序算法回顾 示例1 输入: nums = [4,0,1,2,0,5] 输出: [0,0,1,2,4,5] # 解题思路 排序(Bucket Sort)的原理很简单 在排序时,创建容量为MAX的数组r,并将数组元素都初始化为0;将容量为MAX的数组中的每一个单元都看作一个""。 在排序时,逐个遍历数组a,将数组a的值,作为"数组r"的下标。 ,在计数排序中,每个只存储相同的元素 而排序中每个存储一定范围的元素,通过映射函数,将待排序数组中的元素存储到各个对应的中 之后对每个中的元素进行排序 最后将非空桶中的元素逐个放入原序列中 排序需要尽量保证元素分散均匀 ,否则当所有数据集中在同一个中时,排序就会失效 排序的稳定性取决于内部使用的排序算法 # Java代码2 import java.util.ArrayList; import java.util.Collections 主要步骤有: N次循环,将每个元素装入对应的中 M次循环,对每个中的数据进行排序(平均每个有N/M个元素) 一般使用较为快速的排序算法,时间复杂度为O(nlogn),实际的排序过程是以链表形式插入的

    40930编辑于 2022-07-14
  • 来自专栏hotarugaliの技术分享

    排序

    简介   排序是将待排序序列分到有限数量的中,然后对每一个分别进行排序。 排序的前提假设为被排序序列的关键字数值符合均匀分布,此时排序的平均时间复杂度为 ,最坏时间复杂度为 其中 为的数量。当数量 时,此时排序的复杂度为线性复杂度 。   排序是非原址的,其稳定性取决于内层排序的稳定性。一般采用稳定的插入排序作为内层排序算法,此时排序是稳定的。 2. 思想 排序的主要思想是对待排序序列的关键字数值进行分块,每一块对应一个,然后对每个使用插入排序(或其他排序算法)进行排序,最后将所有中的元素串联起来即得到有序序列。 3. 实现 3.1 伪代码 BucketSort(A, mx, n) { // mx 为最大数值,n 为数量 // 定义 n 个 define bucket[n] // 计算分块的块大小

    41130编辑于 2022-03-01
  • 来自专栏python3

    day10-11-python基础之字符

    3 #int 4 a = "123" 5 print(type(a), a) 6 7 b = int(a) 8 print(type(b), b) 9 10 num = "0011" 11 1,② ,二 5 v1 = test.isdecimal() 6 v2 = test.isdigit() 7 v3 = test.isnumeric() 8 print(v1,v2,v3)     b11 ('xa') 7 #v = test.rstrip('9lexxexa') 8 #v = test.strip('xa') 9 #print(v) 10 11 #test.lstrip() 12 5 # print(v) 6 # v = test.rpartition('s') 7 # print(v) 8 9 v = test.split('s',1) 10 print(v) 11 6 # break 7 # continue 8 9 # index = 0 10 # while index < len(test): 11 # v = test[index] 12

    61430发布于 2020-01-16
  • 来自专栏InCerry

    C#11之原始字符

    最近.NET7.0和C#11相继发布,笔者也是第一时间就用上了C#11,其中C#11的有一个更新能解决困扰我多年的问题,也就是文章的标题原始字符串。 在使用C#11的原始字符串时,发现的一些有意思的东西,超出了我原本对它的期待,话不多说,我们一起来看看。 所以不得不写成下面这样突兀的代码,把缩进全都给删除: 原始字符串 有了原始字符串以后,一切都美好了起来,实现第一个需求,我们只需要首位添加"""即可: 多行文本也不在话下,而且它以"""开始的那一列为准 ,现在是字符串里面包含一个"符号可以解决,那假设我有一个地方包含两个"呢? 如果要输出大于两个双引号,那么在原始字符串定义上加一个双引号即可,这是非常聪明的做法: 另外原始字符串也支持字符串插值,比如下面的JSON,如果直接使用,那么会报错,因为字符串内插的格式就是"ABC

    73410编辑于 2023-03-08
  • 来自专栏灰子学技术

    限速之令牌和漏算法

    对于限速来说,最常用的两个算法是:令牌算法和漏算法,下面我们便来看下它们是怎么回事。 一、令牌: 令牌这种控制机制基于令牌中是否存在令牌来指示什么时候可以发送流量。 如果令牌中存在令牌,则允许发送流量;而如果令牌中不存在令牌,则不允许发送流量。因此,如果突发门限被合理地配置并且令牌中有足够的令牌,那么流量就可以以峰值速率发送。 令牌的工作过程: 1.令牌根据时间匀速的产生令牌数量,这里假设是r,存入到令牌中. 2.令牌在初始化的时候,会分配一定数量的令牌数capicity。 当前时间t内可以消费的令牌数量为: 当前令牌剩余的令牌数(这里最大是capicity) + r*t 二、漏可以看作是一个带有常量服务时间的单服务器队列,如果漏(包缓存)溢出,那么数据包会被丢弃 在“令牌算法”中,只要令牌中存在令牌,那么就允许突发地传输数据直到达到用户配置的门限,因此它适合于具有突发特性的流量。

    9.7K32发布于 2020-10-10
  • 来自专栏全栈程序员必看

    c++11新特性之宽窄字符转换

    大家好,又见面了,我是全栈君   C++11增加了unicode字面量的支持,可以通过L来定义宽字符:str::wstring str = L”中国人”;   将宽字符转换为窄字符串需要用到codecvt

    1K10编辑于 2022-07-18
领券