以下是将上述 Java 代码转换为 C++ 的版本:
class Trie {
private:
struct Node {
int pass;
int end;
Node* nexts[26];
Node() {
pass = 0;
end = 0;
memset(nexts, 0, sizeof(nexts));
}
};
Node* root;
public:
Trie() {
root = new Node();
}
void insert(string word) {
if (word.empty()) {
return;
}
Node* node = root;
node->pass++;
for (int i = 0; i < word.length(); i++) { // 从左往右遍历字符
int path = word[i] - 'a'; // 由字符,对应成走向哪条路
if (node->nexts[path] == nullptr) {
node->nexts[path] = new Node();
}
node = node->nexts[path];
node->pass++;
}
node->end++;
}
};
这是一个简单的 C++ 版本的 Trie 实现。希望对你有帮助!
内容由零声教学AI助手提供,问题来源于学员提问