有一个字符串S,如果它有LS个字符,那么字符串可用字符数组S[1..LS]表示。规定字符串S中的任意两个字符可以交换位置,而且可以交换任意多次,经过交换之后的字符串称为字符串S的同构串。现在输入一个字符串C,长度为LC,字符串C可以表示为C[1..LC]。对于字符串C的任意长度是LS的一段(即子串),如果是字符串S的同构字符串,那么统计值加1,请统计出C中有多少个S的同构子串。
工具/原料
C++
方法/步骤
1
输入数据,第1行为用来判断的同构字符串,要求每个字母都是小写。第2行是用来判断包含多少同构字符串的字符串,同样要求每个字符都是小写。输出数据,为统计出的包含同构字长符串的数量。
2
首先,定义两个整型变量,保存判断的数和同构串计数。
3
定义3字符串变量,保存用来判断的同构字符串和用来判断包含多少同构字符串的字符串,以及字符串的子串。
4
定义两个整型变量,保存同构字符串中所有字母的数量。
5
重置数组n的值,初值为0。
6
输入两个字符串,保证在变量c和s中。
7
统计字符串c中所有字母的个数,保存在数组n中。
8
用for循环判断字符串的所有子串,实现同构字符串的统计。
9
截取字符串s的子串,保存在变量b中。
10
用for循环实现字符串b中所有字母数量的统计,保存在数组m中。
11
判断字符串的子串,是否为同构子串。
12
如果子串是同构子串,则统计值自加1。
13
最后,输出字符串中包含的所有同构子串的数量。
14
运行程序,输入两个字符串后,电脑就会统计出所有同构子串的数量。
注意事项
作者声明:本篇经验系本人辛勤劳动的原创成果,未经许可,谢绝转载。