字符数组

学习:字符串----KMP算法

限于喜欢 提交于 2020-04-07 20:42:40
KMP算法 是判断一个字符串 (模式串) 是不是另一个字符串 (文本串) 的子串的常用算法,其中KMP算法的失配指针的概念(在本算法也叫 next数组 )在AC自动机中也有突出使用。 朴素的字符串匹配算法 朴素的字符串匹配算法,即判断文本串的 以每一个字符为开头,与模式串等长的子字符串 是否与 模式串 本身相等。很明显复杂度为为 O(mn),其中m为文本串的长度,n为模式串的长度。具体实现如下图 上图是一个字符串朴素匹配的示意图,长度为4的模式串与文本串每一个连续的长度为4的子串进行匹配判断,每一次匹配判断都需要一个个字符比较。 朴素匹配的代码: int StringMatch(string s, string p){ //s为文本串,p为模式串 int sLen = s.size(); int pLen = p.size(); int i = 0; //i遍历文本串下标,j遍历模式串下标 int j = 0; while (i < sLen && j < pLen){ if (s[i] == p[j]){ //相同i和j一起加1 i++; j++; } else{ i = i - j + 1; //i指向文本串下一个子串的第一个字符。 j = 0; //不相同,j重新指向模式串第一个字符 } } if (j == pLen) return i - j; else return

JavaSE学习总结第21天_IO流3

泄露秘密 提交于 2020-04-02 20:26:10
21.01 转换流出现的原因及格式 由于字节流操作中文不是特别方便,所以,java就提供了转换流。 字符流 = 字节流 + 编码表 21.02 编码表概述和常见编码表 编码表:计算机只能识别二进制数据,早期又来是电信号,为了方便应用计算机,让它可以识别各个国家的文字,就将各个国家的文字用数字来表示,并一一对应,形成一张表,就是编码表。 简单的说编码表就是由字符及其对应的数值组成的一张表。 常见的编码表: ASCII:美国标准信息交换码,用1个字节的7位可以表示 ISO8859-1:拉丁码表,欧洲码表,用1个字节的8位表示 GBK2312:中国的中文编码表 GBK:中国的中文编码表升级,融合了更多的中文文字符号 GB18030:GBK的取代版本 BIG-5码 :通行于台湾、香港地区的一个繁体字编码方案,俗称“大五码” Unicode:国际标准码,融合了多种文字,所有的文字都用2个字节表示,Java中使用的就是Unicode码表 UTF-8:最多用3个字节来表示一个字符(能用一个字节表示的就用一个字节,一个表示不了就用两个,最多用三个字节) 21.03 String类中的编码和解码问题 1.public String(byte[] bytes, String charsetName)throws UnsupportedEncodingException 通过使用指定的 charset

前端常见面试题

半腔热情 提交于 2020-04-01 07:36:36
一.JS (1) 在函数中赋值,多次赋值,出现问题 var a = b = c = 10; console.log(delete a); //false console.log(delete b); //true console.log(delete c); //true function fn(){ var a = b = c = 10; } fn(); console.log(b); //10 console.log(c); //10 console.log(a); //a is not defined (2)数组的length 赋值给变量后,无法判断数组长度 var arr = [1,2,3], i = 0, len = arr.length; arr.length = 2; console.log(len); //3 console.log(arr.length); //2 (3) 截取字符 console.log('abcdefg'.substring(4)) // efg (4) 统计一个字符里出现最多的字母和出现次数 var str = 'asdfssaaasasasasaa'; var json = {}; for (var i = 0; i < str.length; i++) { if(!json[str.charAt(i)]){ json[str.charAt

去哪儿2015笔试题JAVA实现

我与影子孤独终老i 提交于 2020-04-01 03:13:46
第一题代码: 分析:将字符数组中的每个字符串,找出其中最长的那个与字符数组中长度进行比较: a、当最长的字符串的长度大于等于字符数组的长度时,直接输出 b、当最长的字符串的长度小于字符数组的长度时,找出该长度下整数值最大的那个字符串,在前面部0输出 package com.njupt; public class Heia { public String MaxLength(String[] string){ int max=Integer.valueOf(string[0]); int index=0; for(int i=1;i<string.length;i++){ int temp=Integer.valueOf(string[i]); if(max<temp){ max=temp; index=i; } } if(string[index].length()>=string.length){ return string[index]; } else{ String str=""; int tem=string.length-string[index].length(); for(int j=0;j<tem;j++){ str +="0"; } str +=string[index]; return str; } } public static void main

25-字符串

≡放荡痞女 提交于 2020-04-01 02:05:30
字符串是位于双引号中的字符序列 在内存中以"\0"结束,所占字节比实际多一个 注意: (1)可以把一个字符常量赋给一个字符变量,但不能把字符串常量赋给字符变量 (2)C语言中没有字符串变量,可以 用字符数组来存放字符串 1、字符数组的概念   用来存放字符的数组称为字符数组。 2、字符数组定义   形式和前边介绍的数值数组相同    char 数组名[常量表达式] 例如:char ch[5];   字符数组也可以是二维或多维数组。    char 数组名[常量表达式1][常量表达式2];   例如:char ch[2][5]; 即为二维字符数组。 注意:定义字符数组时,应确保数组长度比字符串长度至少多1 3、字符数组初始化 字符数组也允许在定义时作初始化赋值 char ch[4] = {'a', ' ', 'o'}; 赋值后各元素的值为: ch[0] = 'a'; ch[1] = ' '; ch[1] = 'o'; 其中ch[3]未赋值,系统自动赋值为0。 当对全体元素赋初值的时候也可以省去长度说明。例如:   char ch[] = {'f', 'A', ' '}; 这时数组长度自动定为3。 注意:未被使用的元素均被自动初始化为0 4、字符数组的引用   字符数组和普通数组一样,也是通过下标引用。 5、字符串和字符串结束标志   在C语言中没有专门的字符串变量

PTA数组 查找指定字符

怎甘沉沦 提交于 2020-03-31 10:10:28
#include<stdio.h> #include<string.h> void search(char strSource[],char c)//查找这样的字符和输出功能 { int i=0; int indexPos=-1;//记录位置,-1代表不是正常位置,找的时候如果找到了正常位置就变更为1 while(strSource[i]!='\0')//找到‘\0’结束 { //当前字符是不是我们要找的字符 if(c==strSource[i]) { indexPos=i;//要找到最大的,所以不能break } i++; } //判断这样的字符存在不存在 if(indexPos==-1) { printf("Not Found\n"); }else{ printf("index = %d\n",indexPos); } } int main() { char c; char strSource[81];//不超过80个字符,是不含\0,所以最长是81个字符 c=getchar(); getchar(); gets(strSource);//输入字符到数组里,并且会自动给它加\0 search(strSource,c); return 0; } 来源: https://www.cnblogs.com/jiangzenghui/p/12603111.html

JSOIN.parse()报错:Uncaught SyntaxError: Unexpected token o in JSON at position 1 at JSON.parse (<anonymous>)

对着背影说爱祢 提交于 2020-03-30 15:08:14
记录下引起这个报错的原因: JSON.parse()参数应该是string类型 由于传递的参数是object 类型 那么JSON.parse() 就会把object类型默认转成string 结果为“[object object]” "["字符就当是数组去解析,然后遇到第二个字符“o” 他就蒙圈了 然后报错 o in JSON at position 1 ; 与JSON.parse() 相对应的 就是 JSON.stringify() 把object 转为 string; 来源: https://www.cnblogs.com/zhinian-/p/12598173.html

C语言中字符数组库函数

拈花ヽ惹草 提交于 2020-03-29 04:04:25
以下内容摘自《C程序设计教程》(美)H.M.Deitel P.J.Deitel著,薛万鹏等译,机械工业出版社。 void *memccpy (void *dest, const void *src, int c, size_t n); 从sr*所指向的对象复制*个字符到*est所指向的对象中。如果复制过程中遇到了字符c则停止复制,返回指针指向dest中字符c的下一个位置;否则返回NULL。 void *memcpy (void *dest, const void *src, size_t n); 从sr*所指向的对象复制*个字符到*est所指向的对象中。返回指针为dest的值。 void *memchr (const void *s, int c, size_t n); 在s所指向的对象的前n个字符中搜索字符c。如果搜索到,返回指针指向字符c第一次出现的位置;否则返回NULL。 int memcmp (const void *s1, const void *s2, size_t n); 比较s1所指向的对象和s2所指向的对象的前n个字符。返回值是s1与s2第一个不同的字符差值。 int memicmp (const void *s1, const void *s2, size_t n); 比较s1所指向的对象和s2所指向的对象的前n个字符,忽略大小写

C++常用字符串函数使用整理

一世执手 提交于 2020-03-29 00:57:07
strlen(字符数组) 功能:求字符串长度。 说明:该函数的实参可以是字符数组名,也可以是字符串。 使用样例: char s1[80] = "China"; cout<<strlen(s1)<<'\n';      //输出结果为5 cout<<strlen("大学生")<<'\n';   //输出结果为6  结果说明:一个汉字有两个字节,所以strlen("大学生")的结果为6。 strcpy(字符数组1,字符数组2) 功能:将字符数组2中的字符串复制到字符数组1中 说明: (1)字符数组1的长度必须大于等于字符数组2的长度。 (2)复制时连同字符串后面的'\0'一起复制到字符数组1中。 (3)不能用赋值语句将一个字符串常量或字符数组直接赋给一个字符数组。 (4)字符数组的复制只能用strcpy函数处理。用一个赋值语句只能将一个字符赋给一个字符型变量或字符型数组元素。但可以在定义的时候初始化。 如以下形式: str1 ={''Good"};    //不合法 str1 = str2;      //不合法 char a[5],c1,c2; c1 = 'A'; c2 = 'B';    //合法 c[0] = 'C';       //合法 char g[20] = "aaaa''   //合法 使用样例: `char a[20]="aaaaaa",b[20]="bbb";`

js笔记10

随声附和 提交于 2020-03-28 06:12:43
1.闭包    封装:减少代码的冗余,提高代码的重复利用率   继承:本来需要开辟多个空间,只需要开辟一个空间,减少内存的消耗,提高性能   函数归属:函数归属谁,跟他在哪调用没有关系,而跟他在哪定义有关   闭包的定义:函数在调用的时候,会形成一个私有作用域,内部的变量不能被外部访问,这种保护机制叫闭包(这就意味着函数调用完毕,这个函数形成的栈内存就会被销毁)   栈内存被销毁的案例:    function fn(){     var a=12;     a++;      console.log(a)   }   fn() //13   fn() //13   fn() //13 (因内部存在一个变量,所以在函数内部栈内存就会被销毁)       但有时候,我们不希望他被销毁 ,所以需要return   案例:    function fn(){     var a=12     return function(){       a++;       console.log(a)     }   }   var ss=fn()   ss()  //13   ss()  //14   ss()  //15    解析:       fn()调用完毕后得到的是一个匿名函数,但这个匿名函数在fn()这个作用域下定义的,所以匿名函数内部的变量在fn()作用域下查找