文章

79

粉丝

221

获赞

46

访问

202.1k

头像
删除字符串中的某些连续字符
P1027 贵州大学2019机试
发布于2023年3月18日 15:10
阅读数 3.1k

先附上完整代码

#include <iostream>
#include <string>
using namespace std;
int main() {
	string s, m = "GZU", res = "";
	getline(cin, s);
	s = "GzzGzukkgzUuu";
	for (int i = 0,j,k; i < s.size(); i++) {
		for (j = 0, k = i; j < m.size(); j++, k++)
			if ((s[k] != m[j]) && (s[k] != m[j] - 'A' + 'a'))
				break;
		if (j != m.size())
			res = res + s[i];
		else
			i += m.size()-1;
	}
	
	cout << res;
	return 0;
}

该算法为简单模式匹配,即对于字符串S中对所有字符开头查找模式串。使用res来存储不含模式串“GZU”的字符,若对字符串S中某个字符匹配成功,即模式串中的遍历指针j到达尾部,则将略过模式串长度的字符串,否则就将其加入结果字符串中。

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发