天天看点

UC算法笔试题

     [QQ群:

189191838,对算法和C++感兴趣可以进来] 

说实话,昨天UC的笔试题基本全是基础,但是太基础,直接导致很多都不能确定了。看来不管找工作还是找实习,一定要复习到位。好在我也一直是抱着打酱油的味道,实习与否不是特别在意,否则真心要鄙视死自己啦。

好的,言归正传,题目是一道经典的题目:在一个字符串中找到第一个只出现一次的字符。要求

     1、必须用C/C++编写代码。

 2、不能使用嵌套的for/while循环。

 看到这道题时,我坑爹的看成不能使用for/while循环了。我当时想的是,要遍历字符串不能使用for/while,除非递归和使用goto语句,否则这几乎是不可能的(如果可以,请点明)。觉得题目应该不会这么变态吧,迟迟不愿动笔,后来知道人家说的是嵌套好不好。好的,思路出来了(后来才知道网上一堆这样的题目)。

 1、暴力求解,复杂度为O(n*n).必然会使用到双循环。否决!

 2、排序解决,可以。复杂度也降低,各种排序算法见本博博文。

 3、哈希表的方式,不知道为什么,我对哈希表的方式情有独钟,很多算法我的第一反应都是哈希。O(∩_∩)O哈哈~。昨天的算法代码如下:

 4、当然,还有第四种解决方式,用二进制的方式,用两个位表示一个字符,扫描。感觉和哈希表的方式差不多。

 看到博文的各路大仙,除了以上四种方式,还有其他什么求解方式,求指点。

    参考文献:真心无

    版权所有,欢迎转载,但是转载请注明出处: