数据结构(4.0)——串的定义和基本操作

串的定义(逻辑结构)

,即字符串(String)是由零个或多个字符组成的有序数列。

一般记为S='a1a2....an'(n>=0)

其中,S是串名,单引号括起来的字符序列是串的值;ai可以是字母、数字或其他字符;串中字符的个数n称为串的长度。n=0时的串称为空串\o(用\varnothing表示)

例如:

S="HelloWorld!"

T="IPhone 11 Pro Max?"

子串:串中任意个连续的字符组成的子序列。例:"IPhone 11"是T的子串

主串:包含子串的串。例:T是子串"IPhone 11"的主串

字符在主串中的位置:字符在串中的序号。例:"1"在T中的位置是8(第一次出现)

子串在主串中的位置:子串的第一个字符在主串中的位置。例:"11Pro"在T中的位置是8

空串:M='';

空格字符串:N='   ';

M是一个空串,N是由三个空格组成的字符串

串是一种特殊的线性标,数据元素之间呈线性关系

串的数据对象限定为字符集(如中文字符、英文字符、数字字符、标点字符等) 串的基本操作,如增删改查通常以子串为操作对象

串的基本操作(运算)

假设有串T="",S="IPhone 11 Pro Max?",W="Pro"

StrAssign(&T,chars):赋值操作。把串T赋值为chars。

StrCopy(&T,S):复制操作。由串S复制得到串T。

StrEmpty(S):判空操作。若S为空串,则返回TRUE,否则返回FALSE。

StrLength(S):求串长。返回串S的元素个数。

ClearString(&S):清空操作。将S清为空串。

DestroyString(&S):销毁串。将串S销毁(回收存储空间)

Concat(&T,S1,S2):串联接。用T返回由S1和S2联接成的新串。

Eg:执行基本操作Concat(&T,S,W)后,T="S="IPhone 11 Pro Max?Pro"

SubString(&Sub,S,pos,len):求子串。用Sub返回串S的第pos个字符起长度为len的子串。

Eg:执行基本操作SubString(&T,S,4,6)后,T="one 11"

Index(S,T):定位操作。若主串S中存在与串T值相同的子串,则返回它在主串S中第一次出现的位置;否则函数值为0

Eg:执行基本操作Index(S,W)后,返回值为11

StrCompare(S,T):比较操作。若S>T,则返回值>0;若S<T,则返回值<0;(对二进制进行比较)

长串的前缀与短串相同时,长串更大

只有两个串完全相同时,才相等。

总结:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/801782.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Proxyman for Mac v5.6.1 抓包调试工具

Mac分享吧 文章目录 效果一、下载软件二、功能三、开始安装1、双击运行软件&#xff0c;将其从左侧拖入右侧文件夹中&#xff0c;等待安装完毕2、应用程序显示软件图标&#xff0c;表示安装成功 四、运行测试1、打开软件 安装完成&#xff01;&#xff01;&#xff01; 效果 一…

SpringBoot介绍以及第一个SpringBoot程序

T04BF &#x1f44b;专栏: 算法|JAVA|MySQL|C语言 &#x1faf5; 今天你敲代码了吗 文章目录 2.第一个SpringBoot程序2.1Spring Boot介绍2.2使用idea创建Spring Boot程序2.2.1 社区版idea2.2.2专业版idea2.2.3创建SpringBoot项目2.2.4项目代码和目录介绍目录介绍pom文件 2.3Web…

leetcode 周赛(406)全AC留念

纪念第一次 leetcode 周赛&#xff08;406&#xff09;全AC 1.(100352. 交换后字典序最小的字符串) 题目描述&#xff1a; 给你一个仅由数字组成的字符串 s&#xff0c;在最多交换一次 相邻 且具有相同 奇偶性 的数字后&#xff0c;返回可以得到的 字典序最小的字符串 。 如…

量化发展历史简述,QMT/PTrade+恒生UFT、LDP极速柜台适用哪些情形?

量化发展简述 1.2004年萌发阶段&#xff1a;策略局限在量化择时&#xff0c;量化选股等&#xff1b; 光大保德信量化核 心基金 上投摩根阿尔法基 金 金融危机&#xff0c;海归引入。 2.2010量化元年&#xff1a;中低频交易为主&#xff0c;主要依靠套利、对冲、多因子策略等…

Nginx入门到精通一(基本概念介绍)

下面内容整理自bilibili-尚硅谷-Nginx青铜到王者视频教程 Nginx相关文章 Nginx入门到精通二&#xff08;安装配置&#xff09;-CSDN博客 Nginx入门到精通三&#xff08;Nginx实例1&#xff1a;反向代理&#xff09;-CSDN博客 Nginx入门到精通四&#xff08;反向代理2&…

linux服务器登录mysql无异常,本地登录报1045 -Access denied for user

1、本地登录linux服务器报“1045 -Access denied for user &#xff08;用户访问被拒绝&#xff09;” 造成上面链接问题的原因是&#xff0c;用户权限不足&#xff0c;需要在linux服务器上执行如下2条命令即可 CREATE USER root127.0.0.1 IDENTIFIED BY root123; GRANT ALL P…

蔚来Java实习一面总结

此文用于个人面经总结&#xff0c;答案可能存在出入&#xff0c;望理性食用~~ 1. 分析时间复杂度的工具 2. 数组和链表的区别 数组&#xff1a;线性表&#xff0c;存储空间连续&#xff0c;可以通过下标直接访问元素&#xff0c;查找时间复杂度为O(1)&#xff0c;插入的时间…

前端Vue组件化实践:打造自定义等宽tabs标签组件

在前端开发的世界里&#xff0c;随着业务复杂度的提升和需求的多样化&#xff0c;传统的整体式开发方式已经难以满足快速迭代和高效维护的需求。组件化开发作为一种重要的解决方案&#xff0c;正逐渐受到广大开发者的青睐。本文将结合Vue框架&#xff0c;探讨如何通过组件化开发…

Linux 网络配置与连接

一、网络配置 1.1 ifconfig 网卡配置查询 ifconfig #查看所有启动的网络接口信息 ifconfig 指定的网卡 #查看指定网络接口信息 1.2 修改网络配置文件 vim /etc/sysconfig/network-scripts/ifcfg-ens33 #ens33网络配置文…

数据驱动未来,Xinstall全渠道统计方案引领行业变革

在这个信息爆炸的时代&#xff0c;App市场的竞争日益激烈。对于每一个开发者或营销人员来说&#xff0c;掌握准确、全面的数据分析能力&#xff0c;是提升产品竞争力、优化营销策略的关键。然而&#xff0c;面对投放渠道的分散、数据打通的困难以及作弊流量的困扰&#xff0c;许…

CentOS7.X系统部署Zabbix6.0版本(可跟做)

文章目录 一、部署环境说明二、基本环境部署步骤1、环境初始化操作2、部署并配置Nginx3、部署并配置PHP4、测试NginxPHP环境5、部署并配置MariaDB 三、Zabbix-Server部署步骤1、编译安装Zabbix-Server2、导入Zabbix初始化库3、配置Zabbix前端UI4、启动Zabbix-Server5、WEB页面配…

大厂必争之地!AI搜索产品万字长文分析

多年以前&#xff0c;百度、谷歌等就在开始做智能搜索&#xff0c;但彼时的智能搜索只是对搜索结果的简单整理归纳&#xff0c;效果并不如人意。当前AI爆火&#xff0c;在AI的加持下&#xff0c;搜索会不会更强大一些呢&#xff1f;其实并不是&#xff0c;至少当前AI搜索的使用…

【Linux杂货铺】期末总结篇2:文件操作命令 | 目录操作命令

&#x1f308;个人主页&#xff1a;聆风吟_ &#x1f525;系列专栏&#xff1a;Linux实践室、网络奇遇记 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 第四章4.1 ⛳️Linux与windows的文件系统差别4.2 ⛳️目录相关的常用术语4.3 ⛳️Linux文件类型…

环境配置|PyCharm——Pycharm本地项目打包上传到Github仓库的操作步骤

一、Pycharm端的设置操作 通过Ctrl+Alt+S快捷组合键的方式,打开设置,导航到版本控制一栏中的Git,在Git可执行文件路径中,输入Git.exe。 按照下图顺序,依次点击,完成测试。输出如图标④的结果,即可完成测试。 输出下图结果,配置Git成功,如本地未安装Git,需自行安装。

机器学习 | 深入理解激活函数

什么是激活函数&#xff1f; 在人工神经网络中&#xff0c;节点的激活函数定义了该节点或神经元对于给定输入或一组输入的输出。然后&#xff0c;将此输出用作下一个节点的输入&#xff0c;依此类推&#xff0c;直到找到原始问题的所需解决方案。 它将结果值映射到所需的范围…

Java的数组

概念&#xff1a;用于存储同一数据类型的多个元素[容器] 声明格式&#xff1a;数据类型[] 变量名&#xff1b; 初始化&#xff1a; 1. 静态初始化 数据类型[] 数组名 new 数据类型[]{元素一,元素二,元素三....}简化格式: 数据类型[] 数组名 {元素一,元素二,元素三....} 简…

phenocycler发现免疫治疗反应关键的肿瘤微环境区域

T 细胞介导的抗原特异性反应对于有效的免疫监视至关重要。然而T细胞如何进入肿瘤微环境并操纵局部组织微环境来实现效应器功能&#xff0c;以及这些局部的细胞结构如何对T细胞疗法或者其他免疫治疗做出反应仍然不清楚。近期来自斯坦福大学的研究者利用小鼠模型和临床患者样本&a…

【LeetCode力扣】006. Z 字形变换(Python)

最快解法 参考了运行时间最短的代码&#xff0c;其使用的思路就是按列排序后连接。 class Solution:def convert(self, s: str, numRows: int) -> str:if numRows < 2 : # numRows1时候&#xff0c;对应输出为原字符串return sn len(s)lst [ for _ in range(numRows…

数据库:redis练习题

1、安装redis&#xff0c;启动客户端、验证。 redis-server redis-cli 2、string类型数据的命令操作&#xff1a; &#xff08;1&#xff09; 设置键值&#xff1a; set mykey "haha" &#xff08;2&#xff09; 读取键值&#xff1a; get mykey &#xff08;3&…

深度学习 | CNN 基本原理

目录 1 什么是 CNN2 输入层3 卷积层3.1 卷积操作3.2 Padding 零填充3.3 处理彩色图像 4 池化层4.1 池化操作4.2 池化的平移不变性 5 全连接层6 输出层 前言 这篇博客不够详细&#xff0c;因为没有介绍卷积操作的具体计算&#xff1b;但是它介绍了 CNN 各层次的功能…