LeetCode14. Longest Common Prefix(字典树:最长公共前缀)
来源:互联网 发布:数据挖掘发展前景 编辑:程序博客网 时间:2024/06/07 02:36
题目链接:https://leetcode.com/problems/longest-common-prefix/
Write a function to find the longest common prefix string amongst an array of strings.(最长公共前缀)
解题思路:字典树。以任一串去查找,找到最长的且匹配数为n的即可,水题。
struct Trie{ Trie *next[26]; int cnt; //string str;}*root;int n;string ans;void insert(string s){ Trie *p = root,*pnew; for(int i = 0;i < s.size();++ i){ int x = s[i] - 'a'; if(p->next[x] == NULL){ pnew = new Trie; pnew->cnt = 1; for(int j = 0;j < 26;++ j){ pnew->next[j] = NULL; } p->next[x] = pnew; } else p->next[x]->cnt++; p=p->next[x]; }}int search(string s){ Trie *p = root; bool f = 0; for(int i = 0;i < s.size();++ i){ int x = s[i] - 'a'; if(p->next[x] == NULL) return 0; if(p->next[x]->cnt == n){ ans = s.substr(0,i+1); f = 1; } p = p->next[x]; } return f;}void init(){ root = new Trie; root->cnt = 0; for(int i = 0;i < 26;++ i){ root->next[i] = NULL; }}class Solution {public: string longestCommonPrefix(vector<string>& strs) { n = strs.size(); if(!n) return ans = ""; init(); for(int i = 0;i < n;++ i){ insert(strs[i]); } if(!search(strs[0])) return ans = ""; return ans; }};
1 0
- LeetCode14. Longest Common Prefix(字典树:最长公共前缀)
- LeetCode14 Longest Common Prefix 确定最长的前缀字符串
- Longest Common Prefix 最长公共前缀
- 【最长公共前缀】Longest Common Prefix
- Longest Common Prefix -最长公共前缀
- Longest Common Prefix(最长公共前缀)
- Leetcode:Longest Common Prefix 最长公共前缀
- Longest Common Prefix(最长公共前缀)
- (LeetCode)Longest Common Prefix --- 最长公共前缀
- Longest Common Prefix (最长公共前缀)
- 最长公共前缀(Longest Common Prefix)
- Leetcode14: Longest Common Prefix
- [LeetCode14] Longest Common Prefix
- leetcode14 Longest Common Prefix
- leetcode14 Longest Common Prefix
- LeetCode14:Longest Common Prefix
- LeetCode14. Longest Common Prefix
- leetcode14,Longest Common Prefix
- 《计算的本质》读书笔记
- Stack的三种含义
- 时间出发函数
- 用shell来控制树莓派上链接的LED
- MFC通过点击获取文件路径名字
- LeetCode14. Longest Common Prefix(字典树:最长公共前缀)
- PhotoView 解析
- Fast Rcnn 之数据准备阶段 code 分享
- bug
- nginx 代理 websphere 9080端口问题
- java当中的定时器的4种使用方式
- Java面试题集
- Android 5.1 CTS测试环境配置
- word中添加续表和合并续表