HihoCoder]#1366 : 逆序单词

来源:互联网 发布:tensorflow 分布式计算 编辑:程序博客网 时间:2024/06/05 23:40

华电北风吹
天津大学认知计算与应用重点实验室
2016-09-17

题目链接:
http://hihocoder.com/problemset/problem/1366

题目分析:
简单的Trie树应用问题。

参考代码:

#include <iostream>#include <string.h>#include <string>#include <algorithm>using namespace std;struct Node{    bool isLeaf;    Node * next[26];};void Build(Node* root, string item){    Node* p = root;    int length = item.length();    for (int i = 0; i < length; i++)    {        int id = item[i] - 'a';        if (p->next[id] == NULL)        {            p->next[id] = new Node();        }        p = p->next[id];    }    p->isLeaf = true;}bool Check(Node* root, string item){    Node* p = root;    int length = item.length();    for (int i = 0; i < length; i++)    {        int id = item[i] - 'a';        if (p->next[id] == NULL)        {            return false;        }        p = p->next[id];    }    return p->isLeaf;}int main(){    int N;    cin >> N;    Node * root = new Node();    string word;    int result = 0;    for (int i = 0; i < N; i++)    {        cin >> word;        Build(root, word);        reverse(word.begin(), word.end());        result += Check(root, word) ? 1 : 0;    }    cout << result << endl;    return 0;}
0 0
原创粉丝点击