专栏文章

题解:AT_past202004_d パターンマッチ

AT_past202004_d题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@minp4er4
此快照首次捕获于
2025/12/02 06:03
3 个月前
此快照最后确认于
2025/12/02 06:03
3 个月前
查看原文

思路:

可以看出,题目中要求的字符串必定是原字符串的子串将任意个字符替换成点构成的,所以我们可以枚举原字符串的子串并递推枚举替换点的情况。

代码:

CPP
#include <bits/stdc++.h>
using namespace std;

string s;
set<string> c;
int cnt=0;

void add(string x,int n){
	int l=x.size();
	if(n==l){
		c.insert(x);
		return;
	}
	add(x,n+1);
	x[n]='.';
	add(x,n+1);
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    cin>>s;
    int n=s.size();
    for(int k=1;k<=3;k++){
        for(int i=0;i<=n-k;i++){
            c.insert(s.substr(i,k));
        }
    }

    for(auto i:c){
    	add(i,0);
    }

    cout<<c.size();

    return 0;
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...