什么是字符串?

弦是这些词之一,它们会根据上下文改变其含义:它可以指代竖琴的迷人声音或描述宇宙的结构。在计算机编程中,字符串只是一个有序的符号序列。我们从索引0开始,即给定字符串 s,它的第一个元素是 s[0],第二个是 s[1],依此类推,直到最后一个符号。字符串的长度是它包含的字符总数。我们将其表示为|s|

  • 100101 — a string of length 6;
  • GATTACA — a string of length 7.

字符串的长度可以为零。在这种情况下,它被称为空字符串

可以对字符串执行多种操作。让我们简要提及其中的几个:

reverse(s) — 它返回反转的字符串,即反向写入的字符串。例如,

reverse(LIVE)=EVIL.

concat(s,t)— 连接给定的字符串s和t,例如

concat(STR,INGS)=STRINGS.

很多时候,人们可能不得不比较两个给定的字符串。这是通过扫描第一个字符串的每个元素并将其与另一个字符串中相同索引的相应元素进行比较来完成的。更准确地说,给定字符串s和t,我们检查每个下标相应的元素是否相同,如果它们都匹配,那么我们得出结论s=t

子串

是一个原始字符串的符号的连续子序列。例如,ATTA是字符串GATTACA的子字符串,因为字符串GATTACA包含序列ATTA。自然,如果子字符串与整个字符串不重合,则称该非正确子字符串

任何字符串本身都是非正确的子字符串。空字符串是任何字符串的子字符串。

字符串应用

字符串是编程中最常用的数据结构之一。几乎在任何领域,都存在需要字符串处理算法知识的问题。考虑一些典型的字符串处理算法和问题。

  • 字符串搜索算法。假设我们正在开发一个文本编辑器,并希望添加一个允许用户在文本中搜索模式的功能:如果您曾经尝试在文本墙中查找特定单词,那么您就会知道其中的艰辛。为了解决这个问题,我们需要实现一种算法来查找字符串中给定模式的所有出现。
  • 相似度测量。假设我们正在开发一个搜索引擎。我们希望纠正用户的拼写错误以更好地处理他们的请求(回想一下在谷歌上匆忙搜索的东西:当搜索引擎无论如何都理解你时感觉很棒)。在得到一个拼写错误的单词后,我们可能会在字典中找到最相似的单词并使用它来代替最初的单词。为此,我们需要实现两个字符串之间的相似性度量。

为什么要研究字符串算法?

通常,编程语言提供一些标准的字符串方法。但是一些更复杂的问题需要您手动开发和实施解决方案。
为特定问题想出一个简单的解决方案通常很容易,但幼稚的算法在运行时间和内存消耗方面可能不会有效。更有效的算法通常不太明显。
由于这些原因,熟悉一些标准的和众所周知的字符串处理算法及其应用程序是必不可少的。我们将在下一个主题中研究其中的一些。

Theory: String basics(理论:字符串基础)相关推荐

  1. c# string 占位符_C# 基础知识系列- 9 字符串的更多用法(一)

    0. 前言 在前面的文章里简单介绍了一下字符串的相关内容,并没有涉及到更多的相关内容,这一篇将尝试讲解一下在实际开发工作中会遇到的字符串的很多操作. 1. 创建一个字符串 这部分介绍一下如何创建一个字 ...

  2. JavaScript之基础-9 JavaScript String(内置对象、String概述、字符串常用操作、模式匹配)...

    一.JavaScript 内置对象 内置对象 - 什么是内置对象? 内置对象就是ECMAScript标准中已经定义好的,由浏览器厂商已经实现的标准对象 - 内置对象中封装了专门的数据和操作数据常用的A ...

  3. .NET 6 使用 string.Create 提升字符串创建和拼接性能

    本文告诉大家,在 dotnet 6 或更高版本的 dotnet 里,如何使用 string.Create 提升字符串创建和拼接的性能,减少拼接字符串时,需要额外申请的内存,从而减少内存回收压力 本文也 ...

  4. JAVA day13,14 API、Object类、日期时间类(long,Date,Calendar,DateFormat)、String类(字符串,可变长字符串)、正则表达式、包装类

    1.API API(Application Programming Interface),应⽤程序编程接⼝.Java API是⼀本程序员的"字 典",是JDK提供给我们使⽤的类的说 ...

  5. JAVA笔记---------字符串基础与操作

    字符串基础: 声明字符串: String a; String a,b; 赋值: String a="";//若没有赋值该值为空值null String b,c; b="& ...

  6. python给定字符串显示奇数_字符串基础练习题80+道(原文及代码见文尾链接)

    Python 字符串基础练习题80+道 1.编写一个Python程序来计算字符串的长度. 2.编写一个Python程序来计算字符串中的字符数(字符频率). Sample String:google.c ...

  7. Java的API及Object类、String类、字符串缓存区

    Java 的API(API: Application(应用) Programming(程序) Interface(接口)) Object:Object类是Java语言中的根类,即所有类的父类. equ ...

  8. java 字符串 基础介绍

    1-1.字符串的概述与特点 字符串的概述:在Java中Java.lang.String类代表字符串.字符串是常量,创建后用不可变. 字符串的特点: 1).字符串的内容在创建后永不可变.(重点) 2). ...

  9. java string s_Java字符串:“String s=新字符串(”愚蠢“);

    Java字符串:"String s=新字符串("愚蠢"): 我是一个学习Java的C+的人.我正在阅读有效的Java,有些东西让我感到困惑.它说永远不要写这样的代码:St ...

最新文章

  1. 编写一个基本的Android程序
  2. 【转】补零与离散傅里叶变换的分辨率
  3. java ee 下载 安装配置_JavaEE下载安装及配置.doc
  4. MyBatis嵌套查询解析
  5. 对1,3,4,6,7,8组合显示成“1,3-4,6-8”方法
  6. 10年java架构师教你如何快速打好Java基础?
  7. C语言scanf输入a3,【C语言】04 printf和scanf函数
  8. 【React Native 安卓开发】----(View实战之仿携程)【第三篇】
  9. unity AI Planner 人工智能简介
  10. ClearCase Overview
  11. 初探一个0代码开发—iVX平台
  12. 网友眼中的杭州IT公司排名
  13. 经典分子动力学势能模型拟合程序atomicrex介绍
  14. android edittext 取消软键盘,android Edittext输入修改软键盘并关闭软键盘
  15. 人可以N次踏进同一条河流
  16. xp系统计算机怎么连接到网络打印机,WinXP电脑如何添加网络打印机?WinXP添加网络打印机的步骤...
  17. Arduino(五)——呼吸灯
  18. bert 中文 代码 谷歌_1美元从零开始训练Bert,手把手教你优雅地薅谷歌云TPU羊毛...
  19. 微量元素检测仪产品功能及特点
  20. python如何定义带有可选参数的函数_python中如何正确调用带可选参数的函数

热门文章

  1. mysql如何导出数据
  2. MATLAB学习之数列极限(一)
  3. 【多态】【虚表指针与虚表】【多继承中的多态】
  4. 帝国CMS教程:ECMS(帝国CMS)搜索伪静态
  5. Ten Digit Powers
  6. CentOS7中安装Tomcat8
  7. 什么是创建对象java_java创建对象的几种方式分别是什么
  8. Sharding-Sphere的新一代Zookeeper注册中心实现剖析
  9. [LCT刷题][树链信息维护] P4332 [SHOI2014]三叉神经树
  10. 数据结构的学习_4.2 矩阵的压缩存储(对称矩阵)