26个英文字母从新排序(未知的顺序alphabet),然后用这个位置的顺序给一组数据(array list)排序现在给你这组array list,问能不能计算出来那个alphabet未知的顺序。
思路:拓扑排序就行
0. 初始排序图[G]为单个点[0],[0]小于任何字母(添加[0]为了保证图的连通性,编
程简单),[G]为有向图。
1. 对于输入array [A],取每个串第一个字母,去重复,得到一个有序序列[T]。将这
个串merge到排序图中,merge的方法:
a.对[T]每个字母[a_i],如果在[G]中没有存在,则添加到[G]中。若[a_i]为[T]中
第一个字母,则添加边[a_i]->[0],否则添加边[a_i]->[a_i-1]。
b. 如果[a_i]在[G]中已经存在,若边[a_i]->[a_i-1](对于[a_0]为[a_0]->[0])
不存在,添加此边。
2. 对于首字母相同的[A]中的串,去掉首字母后组成新的array [A]', 如果有空串,在
空串处splitarray。 递归调用步骤1.
结果生成:
1. 如果[G]中存在回路,输入有矛盾,无解
2. 如果[G]中的字母节点小于26个,或者存在环(除1情况外),产生不唯一的解。
3. 如果[G]是一条含有26个节点的无环路径,产生唯一解。
分享到:
相关推荐
google面试题google面试题
每年招聘的时候,做笔试难免会遇到一些经典的面试题,而好多是google已经出过的
Google21道面试题 Google公司的面试 google面试题2 GOOGLE面试题--答案
11谷歌面试题精讲
程序员面试题精选 C++ 算法 微软 google 程序员面试题精选 C++ 算法 微软 google
google的面试题,很有挑战性...........
微软公司面试人员的面试题解答,google微软等大公司面试题,软件架构师的设计。
15个Google面试题以及答案。对于的相关职位产品经理、软件工程师等。
Google面试题
真正的谷歌笔试面试题,让你领略互联网最伟大公司的风采,也为自己进入这些最著名的IT企业找准方向,明白哪些知识和技能是现代IT企业最渴求的!!
08_谷歌面试题_
C++基础面试题.docx C++开发工程师面试题库.docx C++技能测试试卷一及答案.docx C++技能测试试卷二及答案.docx c++笔试题汇总.pdf C++经典面试题库 附带参考答案.docx C++语言程序设计试题.docx C++面试题笔试题 CC+...
常见算法笔试或面试题 笔试面试专栏:字符串 数组 vc题集 十道海量数据处理面试题与十个方法大总结 google全程面试题 其他一些公司的面试题
mit 的教授教你如何攻克谷歌面试题。 里面包含了谷歌经典题型和解答。 不错的复习材料。。。
21道经典的Google面试题,全英文题目,涉及到多方面的知识
经典谷歌,微软部分面试题的详细分析过程解答,另外还有一些锻炼思维能力的数学趣题。以上题目均节选源自《果壳网》,我已将上述试题转成PDF格式,便于下载和阅读。
微软google面试题
名牌有名牌的理由,就连招聘也与众不同,各个企业的面试题成了招聘后期的压轴好戏。今年的企业面试题目,说它百般刁难的有之,说它独出机杼的有之,说它故弄玄虚的有之。你怎么看呢?还是先来了解一下,看看面对这些...
这是Google的15道面试题与答案,word文档!大家感兴趣的看看吧!呵呵!希望对各位有帮助!