字符串函数

5.最长的回文子串

懵懂的女人 提交于 2020-02-16 19:12:02
暴力解法 思路 1、做一个子函数,用于检测输入的字符串是否是回文串 2、使用双指针,头指针从字符串开始处遍历,尾指针每次均从结尾处开始,检查头尾指针之间的字符串是否是回文串,若是,且长度大于之前的长度,则更新,否则进行下次检查,注意,大循环的结束条件可以随着找到回文子串的长度而更新。 代码 # include <stdio.h> # include <string.h> # include <stdlib.h> // for malloc(), free() # define YES 1 # define NO 0 int IsPalindrome ( char * strIn , int strLength ) { for ( int i = 0 ; i < strLength / 2 ; i ++ ) { if ( strIn [ i ] != strIn [ strLength - 1 - i ] ) { return NO ; } } return YES ; } char * longestPalindrome ( char * s ) { int strLength = strlen ( s ) ; if ( strLength < 2 ) { return s ; } char tmpLongestPald [ 1001 ] = { 0 } ;

${fn: }函数

旧时模样 提交于 2020-02-16 18:34:36
函数名 函数说明 使用举例 fn:contains 判断字符串是否包含另外一个字符串 <c:if test="${fn:contains(name, searchString)}"> fn:containsIgnoreCase 判断字符串是否包含另外一个字符串(大小写无关) <c:if test="${fn:containsIgnoreCase(name, searchString)}"> fn:endsWith 判断字符串是否以另外字符串结束 <c:if test="${fn:endsWith(filename, ".txt")}"> fn:escapeXml 把一些字符转成XML表示,例如 <字符应该转为< ${fn:escapeXml(param:info)} fn:indexOf 子字符串在母字符串中出现的位置 ${fn:indexOf(name, "-")} fn:join 将数组中的数据联合成一个新字符串,并使用指定字符格开 ${fn:join(array, ";")} fn:length 获取字符串的长度 , 或者数组的大小 ${fn:length(shoppingCart.products)} fn:replace 替换 字符串中指定的字符 ${fn:replace(text, "-", "&#149;")} fn:split 把字符串按照指定字符切分 ${fn

codeforce div2 620 B. Longest Palindrome

这一生的挚爱 提交于 2020-02-16 14:31:14
题意很好理解,就是有若干个长度已知各不相同的字符串,让我们组成一个尽可能长的回文串,刚开始我找错了方向,想着转换成26进制在暴力找解的方法,后发现不太可行,看到标称里那么多stl,直接用一些c++内置功能完成了题目的求解,首先是set去复制一份字符串的值,直接用其内置的find函数确实是否有合适的值,在这里有一个点很有意思,find函数在找不到这个的位置时,会自动返回end所以判断是否存在回文可以用.find!=.end。这是个很有趣的应用,查了很久才了解到这个用法,其次既然不常用set,在这里我也简单介绍一些第一次用到的set功能earse可以删去这个元素的迭代器,set容器还提供自动排序和去重的功能,可以存储多种类型的数据,之后因为这道题所有字符串均不同,所以我们需要考虑自身是回文串的串,随便选一组放在中间。使用vactor去存前半部分和后半部分,使用c++内置的reverse来翻转字符串。最后在介绍一个c++的语法for(x:y)的意义是遍历所有y中的x; 题解写到这里,也算发现这道题其实大部分内容都是靠c++内置功能实现的,所以我们要更熟练的使用这些数据结构 下面代码 # include <bits/stdc++.h> using namespace std ; string s [ 100 ] ; int mian ( ) { set < string > awsd ;

JavaScript 中的数据类型与变量

你离开我真会死。 提交于 2020-02-16 13:12:55
一、动态类型 JavaScript 是一种 弱类型 或者说 动态 语言。这意味着我们不用提前声明变量的类型(松散类型),在程序运行过程中,类型会被自动确定。也就是说我们可以使用同一个变量保存不同类型的数据,每个变量仅仅是一个用于保存值得占位符而已。 二、变量 定义变量 定义变量时要使用 var 操作符( var 是一个关键字),后跟变量名(即一个标识符): var username ; ES6 中新增了 let 和 const 关键字来代替 var ,这里我们先不做过多的讨论。 这行代码定义了一个名为 username 的变量,该变量可以用来保存任何值。这里有一点需要注意:像这样未经过初始化的变量,会保存一个特殊的值 —— undefined 。 初始化变量 我们也可以初始化变量,在定义变量的同时可以设置变量的值: var username = 'Deepspace' ; 初始化变量并不会把它标记为字符串类型,初始化的过程就是给变量赋一个值。 修改变量 因此,我们可以在修改变量值的同时修改值得类型: var username = 'Deepspace' ; username = 1 ; 有一点需要注意,用 var 操作符定义的变量将成为该变量的作用域中的局部变量。也就是说,如果在函数中使用 var 定义一个变量,那么这个变量在函数退出后就会被销毁。看个例子: function

Python3标准库:textwrap文本自动换行与填充

十年热恋 提交于 2020-02-16 11:36:03
1. textwrap文本自动换行与填充 textwrap模块提供了一些快捷函数,以及可以完成所有工作的类TextWrapper。如果你只是要对一两个文本字符串进行自动或填充,快捷函数应该就够用了;否则的话,你应该使用TextWrapper的实例来提高效率。 1.1 填充段落 textwrap.fill(text,width=70,**kwargs)   对text中的单独段落自动换行,并返回一个包含被自动换行段落的单独字符串。fill()以下语句的快捷方式。 "\n".join(wrap(text, ...)) 特别要说明的是,fill()接受与wrap()完全相同的关键字参数。 import textwrap sample_text = ''' The textwrap module can be used to format text for output in situations where pretty-printing is desired. It offers programmatic functionality similar to the paragraph wrapping or filling features found in many text editors. ''' print(textwrap.fill(sample_text, width=50)

Shell编程之test

微笑、不失礼 提交于 2020-02-16 10:03:31
test 是 Shell 内置命令,用来检测某个条件是否成立。test 通常和 if 语句一起使用,并且大部分 if 语句都依赖 test。 test 命令有很多选项,可以进行数值、字符串和文件三个方面的检测。 Shell test 命令的用法为: test expression 当 test 判断 expression 成立时,退出状态为 0,否则为非 0 值 test 命令也可以简写为[],它的用法为: [ expression ] # 注意[]和expression之间的空格,这两个空格是必须的,否则会导致语法错误。[]的写法更加简洁,比 test 使用频率高 #!/bin/bash read age if test $age -le 2; then echo "婴儿" elif test $age -ge 3 && test $age -le 8; then echo "幼儿" elif [ $age -ge 9 ] && [ $age -le 17 ]; then echo "少年" elif [ $age -ge 18 ] && [ $age -le 25 ]; then echo "成年" elif test $age -ge 26 && test $age -le 40; then echo "青年" elif test $age -ge 41 && [ $age

第八周作业

筅森魡賤 提交于 2020-02-16 09:51:02
函数题一:函数实现字符串逆序 本题要求实现一个字符串逆序的简单函数。 函数接口定义: void f( char *p ); 函数f对p指向的字符串进行逆序操作。要求函数f中不能定义任何数组,不能调用任何字符串处理函数。 裁判测试程序样例: #include <stdio.h> #define MAXS 20 void f( char *p ); void ReadString( char *s ); /* 由裁判实现,略去不表 */ int main() { char s[MAXS]; ReadString(s); f(s); printf("%s\n", s); return 0; } /* 你的代码将被嵌在这里 */ 输入样例: Hello World! 输出样例: !dlroW olleH 实验代码 void f( char *p ) { int i=0,q=0,h,tmp; while(p[i]!='\0') i++; h=i-1; while(q<=h) { tmp=p[q]; p[q]=p[h]; p[h]=tmp; q++; h--; } return ; } 设计思路及其流程图 本题所遇到的问题及解决办法 无 运行结果截图 函数题二: 本题要求实现一个函数,将两个字符串连接起来。 函数接口定义: char *str_cat( char *s, char *t );

(03)odoo模型/记录集/公用操作

混江龙づ霸主 提交于 2020-02-16 09:42:08
----------------- 更新时间 11:17 2016-09-18 星期日 11:00 2016-03-13 星期日 09:10 2016-03-03 星期四 11:46 2016-02-25 星期四 10:06 2016-02-24 星期三 14:51 2016-02-23 星期二 18:07 2016-02-19 星期五 17:44 2016-02-17 星期三 ----------------- *模型 模型是业务对象的呈现 * 系统已定义的模型查看 设置->技术->数据结构->模型 现在定义的有700多个 * 版本演变 from openerp.osv import fields, osv -> from openerp import models, fields ------------- osv.osv ---> orm.Model ---> models.Model osv.TransientModel ---> orm.TransientModel ---> models.TransientModel ------------ class MyModel(osv.osv): pass... ------------- class MyModel(osv.Model): pass... ------------ class MyModel(models

php中正则表达式详解

五迷三道 提交于 2020-02-16 06:39:16
概述 正则表达式是一种描述字符串结果的语法规则,是一个特定的格式化模式,可以匹配、替换、截取匹配的字符串。常用的语言基本上都有正则表达式,如JavaScript、java等。其实,只有了解一种语言的正则使用,其他语言的正则使用起来,就相对简单些。文本主要围绕解决下面问题展开。 有哪些常用的转义字符 什么是限定符与定位符 什么是单词定位符 特殊字符有哪些 什么是逆向引用以及怎样使用逆向引用 匹配模式 php中怎样使用正则表达式 php中哪些方面需要用到正则 怎样进行邮箱匹配,url匹配,手机匹配 怎样使用正则替换字符串中某些字符 贪婪匹配与惰性匹配区别 正则表达式之回溯与固态分组 正则优缺点有哪些 正则表达式的基本知识汇总 行定位符(^与$) 行定位符是用来描述字符串的边界。 “$” 表示行结尾 “^” 表示行开始如 "^de" ,表示以de开头的字符串 "de$" ,表示以de结尾的字符串。 单词定界符 我们在查找的一个单词的时候,如an是否在一个字符串”gril and body”中存在,很明显如果匹配的话,an肯定是可以匹配字符串“gril and body”匹配到,怎样才能让其匹配单词,而不是单词的一部分呢?这时候,我们可以是哟个单词定界符\b。 \ban\b 去匹配”gril and body”的话,就会提示匹配不到。 当然还有一个大写的\B,它的意思,和\b正好相反

python_基础知识回顾总结

人盡茶涼 提交于 2020-02-16 03:29:05
一、流程控制:if,while ,for 1、if……else 条件判断 语法: if 条件1:   代码块 elif 条件2:   代码块 …… else:   代码块 注:单纯的if语句里,从上到下,只要符合其中一个条件,就不会再执行下面的条件了。 2、while 无限循环 语法格式:(代码块可以是for循环或if条件判断循环,break,continu) while 条件:   代码块 --------------------------- while 条件成立时执行下面的代码块,不成立时执行else代码块,但一遇到break就直接退出循环,循环里的或else都不会执行:   代码块 else:   代码块 ---------------------------- 1 1、第一种情况 2 n = 1 3 while n < 5: 4 n +=1 5 print(n) -----> 2,3,4,5 6 7 2、第二种情况 8 n = 1 9 while n < 5: 10 print(n) ------->1,2,3,4 11 n +=1 12 13 3、第三种情况 14 while n < 5: 15 if n == 3: 16 break 17 print(n) 18 n +=1 19 ------->什么都没有,因为n =1或2时都不符合if条件,故不会执行里面的代码