OnTheWay2012
埋葬昨天的我,迎来重生的我!
posts - 15,  comments - 89,  trackbacks - 0
第一题是:求一个字符串中出现频率最高的那个字符及其出现此时?
具体代码如下:
 1void GetMost(char *pStr, char &ch, int &size)
 2{
 3    ch = '\0';
 4    size = 0;
 5
 6    if (NULL != pStr)
 7    {
 8        int nArray[256];
 9        memset(nArray, 0sizeof(nArray));
10
11        while(*pStr != '\0')
12        {
13            (nArray[*pStr + 128])+=1;
14            if((nArray[*pStr + 128]) > size)
15            {
16                size = nArray[*pStr + 128];
17                ch = *pStr;
18            }

19
20            pStr++;
21        }

22    }

23}
需要注意 char的范围是[-128,127]之间,所以数组下标要加上128!

第二道题是:把一个数提升到8的倍数。例如1需要提升到8, 8提升之后还是8,11提升之后是16,23提升之后是24。
1int GetUp2Eight(int nValue)
2{
3    const int nEight = 8;
4    return (nValue + nEight - 1& (~(nEight - 1));
5}

这两道题的解法不太复杂,只是做法很巧妙。
posted on 2010-03-28 11:28 OnTheWay 阅读(2284) 评论(6)  编辑 收藏 引用 所属分类: 面经

FeedBack:
# re: 两道很有意思的面试题[未登录]
2010-03-28 15:39 | koson
有意思。。  回复  更多评论
  
# re: 两道很有意思的面试题
2010-03-28 16:15 | 零宇
第一次没仔细看,第二题只要是2N此方都可以那么干  回复  更多评论
  
# re: 两道很有意思的面试题
2010-03-28 18:56 | 田兵
@koson
太精辟,精辟到不知道做法的意思  回复  更多评论
  
# re: 两道很有意思的面试题
2010-03-28 19:35 | anyanyway
2常用语内存对齐, 很精妙  回复  更多评论
  
# re: 两道很有意思的面试题
2010-03-29 13:26 | 罗莱家纺首页
计划及哈市大师阿斯顿  回复  更多评论
  
# re: 两道很有意思的面试题
2010-05-22 16:08 |
第2个题目,那个的学名叫做“align up ”
如果你做过位图相关的研究,你就知道了。  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理



<2010年3月>
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910

常用链接

留言簿(4)

随笔分类

随笔档案

友情连接

搜索

  •  

最新评论

阅读排行榜

评论排行榜