精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-04-23
2.1 下图是电话机键盘 从图中,我们可以发现26个字母分布在2-9这8个数字键上。某人的电话号码是65967427,观察单词“olympics”,可以发现:字母o位于数字键6上,字母l位于数字键5上,… 字母s 位于数字键7上。此时,我们说olympics是65967427对应的一个字母组合。65967427还可以对应其它很多种字母组合,例如:mjwmpgap也是其中之一。以C语言编写函数 :int transfer(int number)。该函数的输入为一个电话号码(允许输入为3位到11位的十进制数),在屏幕上输出该数字对应的所有字母组合,并返回组合的总数。如果数字中包含1或者0,由于没有与之对应的字母,则直接返回0。当数字小于3位或者大于11位时,亦没有对应字母组合,返回0。 2.2 求解:有一个文本文件,记录了某个学校所有人的姓名、出生日期(假设没有人重名,该校大约有2万人)。记录格式如下: 。。。。。。 张三 19800120 李四 19810321 王五 19800122 赵六 19830321 。。。。。。 现在需要在某天举办一场生日晚会,邀请生日在当天的人员参加。如果期望这场生日晚会参加的人员尽可能多,那么应该选择在哪一天?在解答时,需要注意代码的效率、质量。当不能给出完整代码时,可以描述解题思路。 2.3求解:在一份文本文件中,查找其中所有的anagram。例如,如果这份文件中包含了stop、tops、pots这样三个单词,这三个词就是一组anagram,这三个单词都是由s、t、o、p这四个字母组成的。这份文件中可能存在多组anagram,大小写视为同样字符。在解答时,需要注意代码的效率、质量。当不能给出完整代码时,可以描述解题思路。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-04-23
第一题,估计是类似手机的键盘吧。我只想到根据号码得到每个号码可能出现的字母,然后多重循环一下。。。
第二题,一个map,key是生日,value是生日出现的次数。读一条,看看看有没有key,没有key就put(key,1)有key就把value+1.最后看哪个key的value最大 第三题,我暂时想到的是由单词对应到bitset上,如果含有某个字母,那么bitset的某位就应该置1,这样可以解决字母顺序的问题,但是冗余较大,bitset得26位。 然后搞一个map,key放bitset,value是存放对应该bitset单词的list。 然后,只要一个一个单词处理就行了,不多说了。 |
|
返回顶楼 | |
发表时间:2008-04-23
No.1:
step1:建立每个数字与对应字母的对应关系集合 step2:首先用正则表达式进行输入筛选,对正确的输入进行step3处理 step3:遍历处理咯,另外问下为什么要用c写用意何在? No.2: step1:首先注意是文本文件,所以要建立读文本的一个toolClass step2:因为不能确认生日重复情况,所以建立动态数组,容量<365 step3:利用toolClass依次解析文本存入step2数组中,元素名为生日,内容为容纳一个到多个生日的集合 step4:每次读取的(姓名,生日)对,取出生日与之前的比较,如果已存在相同数组名元素,就存入相应集合,如果没有就新增一个元素 step5: 遍历数组取出当前最大容量元素 No.3:等一会想 |
|
返回顶楼 | |
发表时间:2008-04-23
Joo 写道 No.1:
step1:建立每个数字与对应字母的对应关系集合 step2:首先用正则表达式进行输入筛选,对正确的输入进行step3处理 step3:遍历处理咯,另外问下为什么要用c写用意何在? No.2: step1:首先注意是文本文件,所以要建立读文本的一个toolClass step2:因为不能确认生日重复情况,所以建立动态数组,容量<365 step3:利用toolClass依次解析文本存入step2数组中,元素名为生日,内容为容纳一个到多个生日的集合 step4:每次读取的(姓名,生日)对,取出生日与之前的比较,如果已存在相同数组名元素,就存入相应集合,如果没有就新增一个元素 step5: 遍历数组取出当前最大容量元素 No.3:等一会想 校园招聘题目用C,C++,Java都可以,No.2我也是这么想的,不知道有没有更好的方法。 |
|
返回顶楼 | |
发表时间:2008-04-23
呵呵,,和我现在工作内容倒是吻合的。
lz应聘的公司干嘛的啊 |
|
返回顶楼 | |
发表时间:2008-04-23
第一题,估计是类似手机的键盘吧。我只想到根据号码得到每个号码可能出现的字母,然后多重循环一下。。。
电话号码为3到11位,套11个循环? |
|
返回顶楼 | |
发表时间:2008-04-23
imjl 写道 呵呵,,和我现在工作内容倒是吻合的。
lz应聘的公司干嘛的啊 浙大网新 |
|
返回顶楼 | |
发表时间:2008-04-23
|
|
返回顶楼 | |
发表时间:2008-04-23
253620236 写道 imjl 写道 呵呵,,和我现在工作内容倒是吻合的。
lz应聘的公司干嘛的啊 浙大网新 噢噢。。 |
|
返回顶楼 | |
发表时间:2008-04-23
第一个题和论坛ruby版里那个“容易记的电话号码”有些类似
第二个,就是统计生日最多的哪一天,但是生日里面的年可以直接忽略掉,需要的就只有月日。月和日不要一起统计,先算月。先把生日最多的那个月份找到,再去统去到底是哪一天。呵呵,这样最后需要计算个数的人就少了很多了吧。直接去算每天出现的人数还是有点笨。如果数据量再多的话,可以借用下数理统计的知识。 第三个,使用正则表达式\b(?i)[s|t|o|p]{4}\b,搞定~~ |
|
返回顶楼 | |