精华内容
下载资源
问答
  • 字符串查找子串

    2012-10-04 18:33:00
    不调用任何系统函数,实现一个字符串查找子串的函数,如果包含字串,则返回该字符串的位置值,如果不包含,则返回-1 1 //不调用任何系统函数,实现一个字符串查找子串的函数,如果包含字串,则返回该字符串的...

    不调用任何系统函数,实现一个字符串查找子串的函数,如果包含字串,则返回该字符串的位置值,如果不包含,则返回-1

     1 //不调用任何系统函数,实现一个字符串查找子串的函数,如果包含字串,则返回该字符串的位置值,如果不包含,则返回-1
     2 #include "stdafx.h"
     3 #include <string.h>
     4 
     5 //方法1
     6 int search_max_substr1(const char *str1,const char *str2)//在str1中查找子串str2
     7 {
     8     int pos=0,k=0,staic=0;
     9     int str1_len=strlen(str1);
    10     int str2_len=strlen(str2);
    11     for(int i=0;i<str1_len;i++)
    12     {
    13         for(int j=0;j<str2_len;j++)
    14         {
    15             if (str1[i]==str2[j])
    16             {
    17                 staic=1;
    18                 k=1;
    19                 pos=i;
    20                 while((str1[i+k]==str2[j+k])&&(str1[i+k]!='\0')&&(str2[j+k]!='\0'))
    21                     {
    22                         k++;
    23                     }
    24                 break;
    25             }
    26         }
    27         if (staic==1)
    28             break;
    29     }
    30     if(k==str2_len) //若在str1中找到子串str2,返回子串在str1中的位置
    31         return pos;
    32     else
    33         return -1;
    34 }
    35 
    36 //方法2
    37 int search_max_substr2(const char *str1,const char *str2)
    38 {
    39     int len1=strlen(str1),len2=strlen(str2);
    40     int i=0,j=0;
    41     while (i<len1&&j<len2)
    42     {
    43         if ( *(str1+i)==*(str2+j) )
    44         {
    45             int pos=i;
    46             int ii=i+1;
    47             int jj=j+1;
    48             while ((ii<len1)&&(jj<len2))
    49             {
    50                 if(*(str1+ii)==*(str2+jj))
    51                 {
    52                     ii++;
    53                     jj++;
    54                 }
    55                 else 
    56                 {
    57                     break;
    58                 }
    59             }
    60         if(jj==len2)//查找成功
    61             return pos;
    62         
    63         }
    64         else 
    65         {
    66             i++;
    67         }
    68     }
    69     return -1;
    70 }
    71 
    72 void main()
    73 {
    74     int x;
    75     //x=search_max_substr1("abcdegf","cde");
    76     x=search_max_substr2("abcdegf","cde");
    77     if (x!=-1)
    78         printf("succed! location=%d",x);
    79     else 
    80         printf("-1");
    81 }

     

     

     

     

    转载于:https://www.cnblogs.com/xingele0917/archive/2012/10/04/2711615.html

    展开全文
  • 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查找相似单词的方法示例

    展开全文
  • C/C++实现字符串查找子串

    千次阅读 2019-10-25 16:13:54
    C/C++实现字符串查找子串

    C/C++实现字符串查找子串
    查找字符串str中是否含有子串sub,代码如下:
    int mysubstr(string str, string sub)
    {
    int pos, i, j, tmp;
    if(str == “” || sub == “” || str.length() < sub.length()) return -1;
    for(i = 0; i < str.length(); i++)
    {
    if(str[i] == sub[0])
    {
    for(pos = i, j = 0; j < sub.length() && pos < str.length(); pos++, j++)
    {
    if(str[pos] != sub[j]) break;
    }
    }
    if(j == sub.length()) return pos-sub.length();
    }
    return -1;
    }

    int main()
    {
    string str = “abcdefcdfgh”;
    string sub = “cdf”;
    int pos = mysubstr(str, sub);
    printf(“pos:%d\n”, pos);
    return 0;
    }

    注:先查找到子串第一个字符所在位置,之后查找子串全部,若不符合则继续从原字符串中查找下一个子串第一个字符位置

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

    惭愧啊,今天写了个查找子串的Python程序被BS了…

    如果让你写一个程序检查字符串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程序被BS了…如果让你写一个程序检查字符串s2中是不是包含有s1。也许你会很直观的写下下面的代码:代码如下:#determine whether s1 is a substring of s2def isSubstring1(s1,s2)...
  • 题目描述:给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。测试用例:示例 1:输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb" 输出: 1 ...
  • Life needs to stop sometimes— —happinessDREAM.2020字符串的作用字符串是 Python 中最常用的数据类型。我们一般使用引号来创建字符串。创建字符串很简单,只要为变量分配一个值即可。01认识字符串认识字符串a = ...
  • 字符串的操作非常常见,这一节讲字符串查找子串、多个相同子串的查找问题。 CString str; str=_T(“abcd version A \r\n 1234 version A \r\n ABCD version A \r\n good man.”); 想要查找上述字符串中子串...
  • 97. 交错字符串题目给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的。示例 1:输入: s1 = "aabcc", s2 = "dbbca", s3 = "aadbbcbcac"输出: true示例 2:输入: s1 = "aabcc", s2 = "dbbca", s3 = ...
  • /*查找子串在给定字符串中出现的位子*/#include #include <string.h>int str_in_str(char *src_str,char *child_str) { int i = 0,j = 0; for(;src_str[i] != '\0';i++) { if(child_str[j] == src_str
  • 题目: 经典的KMP算法 分析: 和KMP算法对应的是BF算法,其中BF算法时间复杂度...但是KMP算法不太好理解,其中牵涉到next数组,目标就是让模式尽可能的往右滑动,减少比较次数,比如 a b a b c -1 0 0 1 2 比如
  • 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件...
  • python在utf-8下 中文字符串查找子串

    千次阅读 2014-04-07 20:49:25
    一个问题:utf-8编码下 ,两个unicode字符串
  • 在[beg, end]范围内查找substring,找到返回substr的起始下标,否则返回 -1。 1 string = 'Hello Python' 2 print(string.find('h', 0, len(string))) # 输出 9 3 print(string.find('thon') ...
  • 实现一个字符串查找子串的函数

    千次阅读 2012-03-20 23:59:04
    #include int Search(char *str,char *sum) { int l1=strlen(str); int l2=strlen(sum); if(l1-l2) return -1; else { int i,j; for(i=0;i;i++) { if(sum[0]==str[i]) ... int flag
  • #include<iostream> #include<stdlib.h> #include<string.h> using namespace std; class Solution { public: char *strFind(char * string, char *substring) { if (string == NULL &...
  • 基友前两天参加了阿里的实习生面试,问了个问题,就是关于字符串子串搜索的问题。想想实现方式无非就是两层循环,但是 java 中是有现成实现的,于是我就去查查源码,看看 java 语言怎么实现这个的,发现也就是...
  • 前两天刚装了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...
  • C语言版字符串查找函数,字符串中查找子串
  • 一个常规的字符串查找算法,两层循环,每次会记录之前匹配到的字串,完整匹配后程序会退出,如果要优化的话,需要使用KMP算法,大家可以百度,比较复杂。@RunWith(SpringRunner.class)@SpringBootTest@Slf4jpublic ...
  • 惭愧啊,今天写了个查找子串的Python程序被BS了…如果让你写一个程序检查字符串s2中是不是包含有s1。也许你会很直观的写下下面的代码:复制代码 代码如下:#determine whether s1 is a substring of s2def ...
  • 主要介绍了Python字符串查找子串小技巧,,需要的朋友可以参考下
  • 在给定的字符串查找最长子串 题目链接:题目链接 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 如: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3...

空空如也

空空如也

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

字符串查找子串