精华内容
下载资源
问答
  • Python字符串中查找子串的方法发布于 2015-04-12 08:58:32 | 230 次阅读 | 评论: 0 | 来源: 网友投递Python编程语言Python 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个...

    Python字符串中查找子串的方法

    发布于 2015-04-12 08:58:32 | 230 次阅读 | 评论: 0 | 来源: 网友投递

    Python编程语言Python 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。

    如果让你写一个程序检查字符串s2中是不是包含有s1。也许你会很直观的写下下面的代码:

    代码如下:

    #determine whether s1 is a substring of s2

    def isSubstring1(s1,s2):

    tag = False

    len1 = len(s1)

    len2 = len(s2)

    for i in range(0,len2):

    if s2[i] == s1[0]:

    for j in range(0,len1):

    if s2[i]==s1[j]:

    tag = True

    return tag

    可是这是Python,我们可以利用字符串自带的find()方法,于是可以这样:

    代码如下:

    def isSubstring2(s1,s2):

    tag = False

    if s2.find(s1) != -1:

    tag = True

    return tag

    悲情的事就在于此,原来Python中的关键字"in”不仅可以用于列表、元祖等数据类型,还可以用于字符串。所以,这里只需要直接一行代码搞定:

    def isSubstring3(s1,s2):

    return s1 in s2

    类似的,假设要在字符串中,查找多个子串是否存在,并打印出这些串和首次出现的位置:

    代码如下:

    def findSubstrings(substrings,destString):

    res = map(lambda x:str([destString.index(x),x]),filter(lambda x:x in destString,substrings))

    if res:

    return ', '.join(list(res))

    ;-) very cool~

    UPDATE: 如果你不习惯最后面这种看起来很复杂的语法也没关系,可以使用列表解析,更加简洁:

    def findSubstrings(substrings,destString):

    return ', '.join([str([destString.index(x),x]) for x in substrings if x in destString])

    相关阅读:

    Python字符串中查找子串的方法

    python实现在字符串中查找子字符串的方法

    python实现在目录中查找指定文件的方法示例

    python字符串对其居中显示的方法

    详解在Python程序中自定义异常的方法

    python中去掉字符串二边空格函数的方法

    在Python中使用glob模块查找文件路径的方法

    python中定义结构体的方法

    python统计一个文本中重复行数的方法

    python中防止SQL注入的方法

    Python中运行并行任务的方法

    Python查找相似单词的方法示例

    展开全文
  • 主要介绍了Python字符串中查找子串小技巧,,需要的朋友可以参考下
  • 前两天刚装了python 3.1.1, 禁不住技痒写点code。1.选择排序代码如下:>>> def SelSort(L):length=len(L)for i in range(length-1):minIdx=iminVal=L[i]j=i+1while jif minVal>L[j]:minIdx=jminVal=L[j]j...

    前两天刚装了python 3.1.1, 禁不住技痒写点code。

    1.选择排序

    代码如下:

    >>> def SelSort(L):

    length=len(L)

    for i in range(length-1):

    minIdx=i

    minVal=L[i]

    j=i+1

    while j

    if minVal>L[j]:

    minIdx=j

    minVal=L[j]

    j=j+1

    L[i],L[minIdx]=L[minIdx],L[i]

    return L

    2.冒泡排序

    代码如下:

    >>> def bubSort(L):

    swapped=True

    while swapped:

    swapped=False

    for i in range(len(L)-1):

    if L[i]>L[i+1]:

    L[i],L[i+1]=L[i+1],L[i]

    swapped=True

    return L

    3.合并排序

    代码如下:

    >>> def merge(left,right):

    result=[]

    i,j=0,0

    while i

    if left[i]<=right[j]:

    result.append(left[i])

    i=i+1

    else:

    result.append(right[j])

    j=j+1

    result+=left[i:]

    result+=right[j:]

    return result

    >>> def mergesort(L):

    if len(L) < 2:

    return L

    else:

    middle = int(len(L)/2)

    left = mergesort(L[:middle])

    right = mergesort(L[middle:])

    return merge(left, right)

    更多信息请查看IT技术专栏

    展开全文
  • 字符串中查找子串

    2016-06-11 18:52:48
    使用C语言编写程序:1、在字符串中查找一个指定的字符第一次出现的位置,并返回字符所在的位置,如果不存在则返回NULL具体实现如下:char* strchr(char const *str, int ch) { char* st = (char*)str; ...

    使用C语言编写程序:

    1、在字符串中查找一个指定的字符第一次出现的位置,并返回字符所在的位置,如果不存在则返回NULL

    具体实现如下:

    char* strchr(char const *str, int ch)
    {
    	char* st = (char*)str;
    	while (st)
    	{
    		if (*st == ch)
    			return st;
    		st++;
    	}
    	return NULL;
    }

    2、在字符串中查找一个指定的字符串第一次出现的位置,并返回字符所在的位置,如果不存在则返回NULL

    具体实现如下:

    char* strstr(char const *s1, char const *s2)
    {
    	char* str = (char*)s1;
    	char* ch = (char*)s2;
    	char* cur = str;//设置cur标志位
    	while (cur)
    	{
    		char* p1 = cur;
    		char* p2 = ch;
    		while (p1 && p2 && *p1 == *p2)//注意此处用*p1和*p2比较两个是否相同
    		{
    			p1++;
    			p2++;
    		}
    		if (*p2 == '\0')//注意此处不能用p2==NULL
    			return cur;
    		else
    			cur++;
    	}
    	return NULL;
    }

    测试如下:

    void test()
    {
    	char const* str = "abaabcde";
    	int ch = 'b';//strchr查找字符
    	char* arr = "abc";//strstr查找字符串
    	printf("%p----%p\n", str + 1, strchr(str, ch));//找到ch返回ch指针,否则为NULL
    	printf("%p----%p\n", str + 3, strstr(str, arr));//找到arr返回子串指针,否则为NULL
    }

    小知识:编写程序判断你的电脑是小端存储还是大端存储。

        大端模式:是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;

        小端模式:是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。

    void test()
    {
    	int num = 3;//Ox000003
    	char* p = (char*)&num;
    	for (int i = 0; i < 4; i++)
    	{
    		printf("%d ", *p);
    		p++;
    	}
    	if (3 == *(char*)&num)
    	{
    		printf("小端存储!\n");
    	}
    	else
    	{
    		printf("大端存储!\n");
    	}
    }

    本文出自 “Scen” 博客,请务必保留此出处http://10741357.blog.51cto.com/10731357/1758613

    展开全文
  • C语言版字符串查找函数,字符串中查找子串

    操作系统: Windows10 64位

    运行环境: Visual Studio 10


    依赖的头文件:

    #include <string.h>
    #include <stdlib.h>


    /***************************************************************
    /*	函 数 名:FindSubstring
    /*	函数功能:C语言版,在字符串中查找子串
    /*	参    数:
    /*			  strSource:待查找的源字符串
    /*			  strSub:	 要查找的子串
    /*	返 回 值:
    /*			  返回 0,表示查找成功
    /*			  返回-1,表示查找失败
    /*
    /*	作    者:X攻城狮
    /*	日    期:2015年11月4日
    /***************************************************************/
    int FindSubstring (const char *strSource, const char *strSub)
    {
    	unsigned int uLen = strlen(strSource);
    	if (uLen == 0)
    	{
    		return -1;
    	}
    	char *str1 = (char *)malloc(uLen+1);
    	memset(str1, 0, uLen+1);
    	strcpy(str1, strSource);
    
    	uLen = strlen(strSub);
    	if (uLen == 0)
    	{
    		free(str1);
    		return -1;
    	}
    	char *str2 = (char *)malloc(uLen+1);
    	memset(str2, 0, uLen+1);
    	strcpy(str2, strSub);
    
    	unsigned int i = 0, j = 0;
    	for(i=0; i<=strlen(strSource); i++)
    	{
    		if (str1[i] == str2[j])
    		{
    			j++;
    		}
    		else
    		{
    			if (j == uLen)
    			{
    				break;
    			}
    			else
    			{
    				j = 0;
    			}
    		}
    	}
    
    	free(str1);
    	free(str2);
    
    	if (j == uLen)
    	{
    		return 0;
    	} 
    	else
    	{
    		return -1;
    	}
    }


    展开全文
  • 惭愧啊,今天写了个查找子串的Python程序被BS了…如果让你写一个程序检查字符串s2是不是包含有s1。也许你会很直观的写下下面的代码:代码如下:#determine whether s1 is a substring of s2def isSubstring1(s1,s2)...
  • 惭愧啊,今天写了个查找子串的Python程序被BS了…如果让你写一个程序检查字符串s2是不是包含有s1。也许你会很直观的写下下面的代码:#determine whether s1 is a substring of s2def isSubstring1(s1,s2):tag = ...
  • 字符串中查找子串

    千次阅读 2018-07-03 13:57:37
    题目:在字符串中查找子串。给定一个字符串A,要求在一个字符串中查找一个子串B。#include &lt;iostream&gt;#include&lt;assert.h&gt;#include&lt;string.h&gt;using namespace std;char * ...
  • python 字符串中查找子串

    千次阅读 2016-04-02 11:27:11
    # -*- coding:UTF-8 -*-... 字符串中查找子串的方法 检查字符串s2中是不是含有s1 """ # 方法1: def is_sub_string1(s1, s2): tag = False len1 = len(s1) len2 = len(s2) for i in range(0, len2): if s2[i] ==
  • 惭愧啊,今天写了个查找子串的Python程序被BS了…如果让你写一个程序检查字符串s2是不是包含有s1。也许你会很直观的写下下面的代码:复制代码 代码如下:#determine whether s1 is a substring of s2def ...
  • 惭愧啊,今天写了个查找子串的Python程序被BS了…如果让你写一个程序检查字符串s2是不是包含有s1。也许你会很直观的写下下面的代码:代码如下:#determine whether s1 is a substring of s2def isSubstring1(s1,s2)...
  • 一个常规的字符串查找算法,两层循环,每次会记录之前匹配到的字串,完整匹配后程序会退出,如果要优化的话,需要使用KMP算法,大家可以百度,比较复杂。@RunWith(SpringRunner.class)@SpringBootTest@Slf4jpublic ...
  • 惭愧啊,今天写了个查找子串的Python程序被BS了…如果让你写一个程序检查字符串s2是不是包含有s1。也许你会很直观的写下下面的代码:代码如下:#determine whether s1 is a substring of s2def isSubstring1(s1,s2)...
  • 字符串t中查找子串p时,求第一次匹配的序号。 算法思想:假设t和P是两个给定的串,在t中寻找与p相同子串的过程叫做模式匹配,一般t称为正文,p称为模式,t的长度大于p的长度。如果在t中找到等于p的子串,则匹配...
  • 用C语言编写代码:完成对任何两个字符串 a和b的连接,并在连接后的字符串中查找子串c在母串中首次出现的位置。 要求(1)子串a、b、c从键盘输入;(2)输出母串、子串以及子串在母串中的位置。 ...
  • 字符串中查找子串出现的次数

    千次阅读 2018-06-01 15:14:15
    1.indexOf 方法返回一个整数值,指出 String 对象内子字符串的开始位置。如果没有找到子字符串,则返回-1。2.substring(x) 从第x个字符到最后;substring(x,y) 从第x个字符到第y个 字符截取学习代码:思路:indexOf...
  • #include <stdio.h> #include <string.h> #include <stdlib.h> int find(char*a){ char*b=(char*)malloc(strlen(a)+1); scanf("%s",b); int i,j,cnt=0; for(i=0;... if(a[i+j]
  • 在一个字符串s中查找有几个字串subs,结果返回字串的个数。主要用的indexOf()函数。
  • int FindSubstring(const char* all, const char* sub) { int all_len = strlen(all); int sub_len = strlen(sub); int i = 0, j = 0; for (;i&lt;all_len;++i) { if (all[i] == sub[0]) ... j...
  • 2 在字符串中查找子串 算法

    千次阅读 2012-08-10 14:47:54
    题目描述: 给定一个字符... 如A="ABCDF",要你在A中查找子串B=“CD”。 // O(m * n) int strstr(char * str, char* substr)  {  assert(str ! = NULL && substr != NULL);  int lenA = strlen(str);  int le
  • 直接利用字符串查找方法,只能查找字符串首次出现的位置。 input = "abc def abc ghi" str = "abc" start = input.find(str) # 0 start = input.index(str) # 0 end = start + len(str) - 1 # 统计子串出现...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,851
精华内容 1,140
关键字:

字符串中查找子串