字符串个数匹配问题

简介: # 7-2 子字符串个数匹配分别输入两个字符串A和B,A由多个小字符串组成(中间由非字母隔开),B是由字母组成的字符串。求出A中包含B的小字符串的个数(详细看样例),并且输出它。(不区分大小写)### 输入格式:先输入字符串A,由回车结束。然后输入字符串B。### 输出格式:输出A中包含B字符串的个数、### 输入样例:在这里给出一组输入。例如:```inaaBbc4./ewfeAbc wefW%!%&aAbc++0 4AbccabcaBc```### 输出样例:在这里给出相应的输出。例如:```out3```解释:A可以看成:a

7-2 子字符串个数匹配

分别输入两个字符串A和B,A由多个小字符串组成(中间由非字母隔开),B是由字母组成的字符串。求出A中包含B的小字符串的个数(详细看样例),并且输出它。(不区分大小写)

输入格式:

先输入字符串A,由回车结束。然后输入字符串B。

输出格式:

输出A中包含B字符串的个数、

输入样例:

在这里给出一组输入。例如:

aaBbc4./ewfeAbc  wefW%!%&aAbc++0 4Abccabc

aBc

输出样例:

在这里给出相应的输出。例如:

3

解释:

A可以看成:aabbc ewfeabc wefw aabc abccabc小字符串组成的字符串。

#include <iostream>

#include <string>

#include <vector>

#include<sstream>

usingnamespacestd;

stringdelNotChar(stringstr) {

   intlen=str.size();

   stringb;

   for (inti=0; i<=len; i++) {

       if ((str[i] >='a'&&str[i] <='z') ||str[i] ==' ')

           b.push_back(str[i]);

       else

           b.push_back(' ');

   }

   returnb;

}

intmain() {

   intcount=0;//匹配次数

   stringT;//原串

   stringP;//模式串

   getline(cin, T);

   getline(cin, P);

   //换小写

   for (inti=0; i<=T.size(); i++)

       T[i] =tolower(T[i]);

   for (inti=0; i<=P.size(); i++)

       P[i] =tolower(P[i]);

   //去除非字母非空格字符

   T=delNotChar(T);

   vector<string>strArray;

   stringword;

   stringstreaminput(T);

   while (input>>word)

       strArray.push_back(word);

   for (inti=0; i<strArray.size(); i++) {

       if (strArray[i].find(P, 0) !=string::npos)

           count++;

   }

   cout<<count;

   system("pause");

   return0;

}


目录
相关文章
|
8月前
|
机器学习/深度学习 算法 测试技术
【组合数学 容斥原理 逆向思考】2930. 重新排列后包含指定子字符串的字符串数目
【组合数学 容斥原理 逆向思考】2930. 重新排列后包含指定子字符串的字符串数目
|
8月前
|
人工智能 自然语言处理 算法
【动态规划】【字符串】【前缀和】1639通过给定词典构造目标字符串的方案数
【动态规划】【字符串】【前缀和】1639通过给定词典构造目标字符串的方案数
|
8月前
|
算法
算法题 — 整数转二进制,查找其中1的数量
算法题 — 整数转二进制,查找其中1的数量
54 0
|
8月前
|
存储 算法 程序员
【算法训练-数组 一】【数组子集】:最长无重复子数组
【算法训练-数组 一】【数组子集】:最长无重复子数组
54 0
【每日挠头算法题(8)】最后一个单词的长度|重新排列字符串
【每日挠头算法题(8)】最后一个单词的长度|重新排列字符串
|
C语言
C语言:输入两个升序排列的序列,将两个序列合并为一个有序序列并输出。
描述 输入两个升序排列的序列,将两个序列合并为一个有序序列并输出。 输入描述: 输入包含三行, 第一行包含两个正整数n, m,用空格分隔。n表示第二行第一个升序序列中数字的个数,m表示第三行第二个升序序列中数字的个数。 第二行包含n个整数,用空格分隔。 第三行包含m个整数,用空格分隔。
295 0
C语言:输入两个升序排列的序列,将两个序列合并为一个有序序列并输出。
|
自然语言处理 C语言 C++
输入两个整数,求它们按由从大到小的顺序输出。要求使用变量的引用。
输入两个整数,求它们按由从大到小的顺序输出。要求使用变量的引用。
|
算法
给定m个不重复的字符 [a,b,c,d],以及一个长度为n的字符串tbcacbdata滑动窗口
给定m个不重复的字符 [a,b,c,d],以及一个长度为n的字符串tbcacbdata滑动窗口
247 0
|
JSON 数据格式
将字符串按指定的符号分割为集合或数组
将字符串按指定的符号分割为集合或数组
204 0
将字符串按指定的符号分割为集合或数组