A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jing迪 高级黑马   /  2014-1-4 23:20  /  1058 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

前几天看到面试题:
有一组数组 ["Dog","Act","God","Good","Cat"],如 Dog,God,都有一个D,一个O,一个G,可以算是一类,用你最熟悉的一门语言,用一个函数,把上面数组,把相同一类放入一个新数组中,返回如下列表 最后打印出 [Dog,God]-->[Act,Cat]-->[Good]。
我的思路是:
先用一个数组把,原数组(数组1)中的单词,全部转换成大写或小写(数组2),单词顺序跟原数组保持一致;
然后通过对做数组2进行,单个单词的拆分,然后每个单词,根据阿斯科马ASCII 进行排序,然后组成一个新单词,每个单词经过这样的处理后,形成一个新的数组(数组3),迭代数组3中的元素。进行比较,如果相同就记录它们的下标 ,到数组1中去取相应的元素。

不知道我的思路是否正确,或有更好的方式么?

欢迎拍砖。

评分

参与人数 1黑马币 +3 收起 理由
FFF + 3 神马都是浮云

查看全部评分

1 个回复

倒序浏览
每个单词对应一个Map对象,接收字符(忽略大小写)=出现次数.
比较Map对象.
相同的分同组.不同的单独分一组.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马