str函数

矩阵中的路径

ⅰ亾dé卋堺 提交于 2020-03-13 01:53:12
题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,因为字符串的第一个字符b占据了矩阵中的第一行第二个格子之后,路径不能再次进入该格子。 链接: https://www.nowcoder.com/questionTerminal/c61c6999eecb4b8f88a98f66b273a3cc 来源:牛客网 回溯 基本思想: 0.根据给定数组,初始化一个标志位数组,初始化为false,表示未走过,true表示已经走过,不能走第二次 1.根据行数和列数,遍历数组,先找到一个与str字符串的第一个元素相匹配的矩阵元素,进入judge 2.根据i和j先确定一维数组的位置,因为给定的matrix是一个一维数组 3.确定递归终止条件:越界,当前找到的矩阵值不等于数组对应位置的值,已经走过的,这三类情况,都直接false,说明这条路不通 4.若k,就是待判定的字符串str的索引已经判断到了最后一位,此时说明是匹配成功的 5.下面就是本题的精髓,递归不断地寻找周围四个格子是否符合条件,只要有一个格子符合条件

php函数之字符串篇String

余生长醉 提交于 2020-03-12 19:05:43
---------------关于字符串------------------ stristr(str,search) 查询字符串str中search第一次出现的地方,并从返回从匹配点开始到str结束的字符串。对字符的大 小写不敏感,查不到则返回false. strstr(str,search) 方法同上,区别:大小写敏感。 strtoupper(str) 将str转换成大写(英文字符) str_repeat(str,repeat) 将str字符重复repeat次 strpos(str,search,start) 查找search在str中第一次出现的位置,返回位置下标。找不到则返回false. sprintf(format,arg1,arg2,...,argn) 用argn 代替 format字符 串中第n个的%s strip_tags(string,allow) 检查并去除字符串string除allow(可选)标签外的标签(html script css等 ) trim(str,charlist) 去掉字符串str两端的空格以及charlist(可选)预定义字符 substr(str,start,len) 返回字符串str从start开始的长度为len的字符串 old(str) 返回字符串第一个字符的ascii码 serialize(value) 对value序列化

golang的scan标准库(fmt.scan的使用)

社会主义新天地 提交于 2020-03-12 16:32:29
转载自 https://www.cnblogs.com/golove/p/5888441.html 标准库 - fmt/scan.go 解读 // Copyright 2010 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // go/src/fmt/scan.go // version 1.7 // 格式化输入输出的用法请参考:http://www.cnblogs.com/golove/p/3284304.html package fmt import ( "errors" "io" "math" "os" "reflect" "strconv" "sync" "unicode/utf8" ) // ScanState 将扫描器的状态报告给自定义类型的 Scan 方法。 type ScanState interface { // ReadRune 从输入端读取一个字符,如果用在 Scanln 类的扫描器中, // 则该方法会在读到第一个换行符之后或读到指定宽度之后返回 EOF。 // r :读取的字符 // size:字符所占用的字节数 //

ES6语法:var、let、const的区别详解

夙愿已清 提交于 2020-03-12 15:46:14
今天来说说es6的语法,最基础的也就是var,let,const 的用法与区别了,我们来看看他们之间的恩怨情仇。 首先来说说var,这个只要是学过js的都知道,它是用来声明一个变量的,但是它在开发中也会遇到一些问题,比较难解决。先来看看下面的代码: var str="hello world"; ​ function testVar(){   var str="hello"; } testVar(); console.log(str); 这段代码的结果是 "hello world",这说明在var 申明的变量,即使是同样的名字,在不同的块中,在外层块中的变量优先级更高,也就是说,在外层优先使用并且只能使用当前块中的变量;而在他的内部块中的变量,比如说这个函数里面的str,他其实也是优先使用块内的str变量,会屏蔽掉外面的str变量,这是一点。再来看看下面一段代码 function variableHoisting(){   if(condition){     var test="hello javaScript";   }else{     console.log(test)     //这里可以访问到test,但是它是undefined,因为初始化为它赋值成了undefined   }   //这里也可以访问到test } 可能你会感到奇怪,我的var 申明的变量在if

C++运算符重载二:模拟实现string类

眉间皱痕 提交于 2020-03-12 10:59:31
模拟实现string类: 我们使用C语言的string时,有一些不方便的地方: 1.定义数组的时候大小必须固定。 2.字符串进行比较大小,连接的时候必须调用相应的字符串操作函数。 3.还必须考虑内存是否够用,操作起来比较麻烦。 而我们C++提供了string类型,操作起来比较简单,这些操作都可以通过string来使用: string str1 ; //默认构造 string str2 = "aaa" ; //string(const char*) string str3 = "bbb" ; string str4 = str2 + str3 ; string str5 = str2 + "ccc" ; string str6 = "ddd" + str2 ; cout << "str6:" << str6 << endl ; if ( str5 > str6 ) { cout << str5 << " > " << str6 << endl ; } else { cout << str5 << " < " << str6 << endl ; } int len = str6 . length ( ) ; for ( int i = 0 ; i < len ; ++ i ) { cout << str6 [ i ] << " " ; } cout << endl ; //string

ZZULIOJ-1023,大小写转换(Python)

被刻印的时光 ゝ 提交于 2020-03-12 05:52:03
题目描述: 输入一个字母,若是小写字母,则变为大写输出,否则,原样输出。 输入: 输入为一个字符。 输出: 按题目要求输出一个字符,单独占一行。 样例输入: a 样例输出: A 程序代码: x=input().split() if str(x[0]).islower(): num=ord(str(x[0]))-32 else : num=ord(str(x[0])) print(chr(num)) #input()函数读取的是一个字符串,所以在这里我们只选取字符串的第一位,即str(x[0]) 来源: CSDN 作者: Forever+Young 链接: https://blog.csdn.net/weixin_43823808/article/details/104805235

算法题目积累0721

喜你入骨 提交于 2020-03-11 21:53:58
1,两个字符串的最长公共子串 基本思想是 扫描两次矩阵 ,第一次进行字符比较;第二次找出对角线为1的最长长度 package com.bobo.interview; import com.bobo.util.MetrixPrint; /** * 这个类实现的功能室查找两个字符串的最长公共子串(要求连续) * 扫描两次矩阵,第一次的时候是两个字符串的比较,相等的位置赋值1,不等的位置赋值0 * 第二次扫描,找出对角线为1的最大长度 * 需要注意的是:分支不止一个的情况 * @author weibo.lwb * */ public class LargestCommonStr { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub LargestCommonStr test=new LargestCommonStr(); test.largestCommonStr("abce", "ebcen"); } public int largestCommonStr(String str1,String str2){ int n=str1.length(); int m=str2.length(); int metrix[][]=new int[n]

ifstream文件尾最后一行读两次

邮差的信 提交于 2020-03-11 21:52:31
看下面一段代码: ifstream m_fileConfig; string str; m_fileConfig.open(FILE_OPERATORS, ios::out); while(! m_fileConfig.eof() ){ m_fileConfig >> str; cout << str << endl; } 打印结果 FILE_OPERATORS 中的最后一条总被多读了一次。 。。 原因分析 eof()没有问题 当你的文件指针到达文件末尾时 执行feof不会返回 1 要到下一次读取才会返回。 在读取最后一个之后, 虽然到了末尾 但是feof(fp)还是返回0 直到ch=fgetc(fp); //文件结束后再读了一次 然后的eof才返回 其实最后那个数据并没有读取了两次, 只在用eof()来判断时,如果读取到了文件的数据末尾,但还没到文件的结束标识EOF, 再读取sizeof(buf))大小的数据时,fstean流的状态会标识为失败,但buf中的值没有被改变,还是保存了上一次读取的数据。 可以用下面的方法验证: while(!from.eof()) { from.read((char*)(&buf), sizeof(buf)); std::cout < < buf < < endl;//最后一次会输出0 buf = 0; } /////////////////////

pyttsx的中文语音识别问题及探究之路

流过昼夜 提交于 2020-03-11 13:32:57
最近在学习pyttsx时,发现中文阅读一直都识别错误,从发音来看应该是字符编码问题,但搜索之后并未发现解决方案。自己一路摸索解决,虽说最终的原因非常可笑,大牛们可能也是一眼就能洞穿,但也值得记录一下。嗯,主要并不在于解决之道,而是探究之旅。 1、版本(python2中谈编码解码问题不说版本都是耍流氓)   python:2.7   pyttsx:1.2   OS:windows10中文版 2、系统的各种字符编码 sys.getdefaultencoding() ascii sys.getfilesystemencoding() mbcs locale.getdefaultlocale() ('zh_CN', 'cp936') locale.getpreferredencoding() cp936 sys.stdin.encoding UTF-8 sys.stdout.encoding UTF-8 3、探究之路  (1)初体验:   按照http://pyttsx.readthedocs.io/en/latest/engine.html 的说明,传入中文,使用unicode类型,utf-8编码,结果发音并不是输入的内容。 1 #-*- coding: UTF-8 -*- 2 import sys 3 import pyttsx 4 5 reload(sys) 6 sys

21. re模块

时光毁灭记忆、已成空白 提交于 2020-03-10 19:30:47
一、正则 1. 字符 元字符 匹配内容 . 匹配出换行外任意字符 \w 匹配字母或数字或下划线 \s 匹配任意空白符 \d 匹配数字 \n 匹配一个换行符 \t 匹配一个制表符 \b 匹配一个单词的结尾 ^ 匹配指定字符的开始 $ 匹配字符串的结尾 \W 匹配非字母数字下划线 \D 匹配非数字 \S 匹配非空白符 a | b 匹配字符a或字符b () 匹配括号内的表达式,也是一个组 [...] 匹配字符组中的字符 [^...] 匹配除了字符组中的字符其他所有字符 2. 量词 量词 匹配内容 * 重复0或更多次 + 重复1或更多次 ? 重复0或1次 {n} 重复n次 {n, } 重复n或更多次 {n, m} 重复n到m次 3. 运用 import re string_test = "hello" (1) . string_1 = re.findall('.', string_test) print(string_1) >['h', 'e', 'l', 'l', 'o'] (2) ^ string_2 = re.findall('^h', string_test) print(string_2) >['h'] (3) $ string_3 = re.findall('o$', string_test) print(string_3) >['o'] (4) * - 当匹配单个字符的时候