萌新刚学字符串 求调
查看原帖
萌新刚学字符串 求调
274993
Maxmilite楼主2021/4/2 21:15

萌新今天上学脑子抽抽想了这么一种类似于链式前向星的去重方法

用这一道题做了个试验

RERE   OnOn   #2,#9,#10\#2, \#9, \#10

想问一下大佬萌这种算法有没有学名或者有没有优化空间/kk

数据也下载不下来也没法调

绝望/kk

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

int n, ans;
char s[1505];
int v[160000][65], cnt;

inline int trans(char x)
{
    if (isdigit(x))
        return x - 48;
    else if (x >= 'a' && x <= 'b')
        return x - 87;
    else
        return x - 28;
}

inline int check()
{
    int len = strlen(s);
	int flag = 0;
	for (int i(0), cur(0); i < len; ++i)
	{
	    int tmp = trans(s[i]);
		if (v[cur][tmp] == 0)
		{
			flag = 1;
			cur = v[cur][tmp] = ++cnt;
		}
		else
			cur = v[cur][tmp];
	}
	return flag;
}

int main()
{
	scanf("%d", &n);
	while (n--)
    {
        scanf("%s", s);
        if (check())
            ++ans;
    }
    printf("%d\n", ans);
	return 0;
}
2021/4/2 21:15
加载中...