程序员逻辑思维面试题及详细答案.docxVIP

  • 0
  • 0
  • 约5.35千字
  • 约 7页
  • 2026-05-09 发布于河北
  • 举报

程序员逻辑思维面试题及详细答案

一、基础逻辑题(入门级,考察基础思维严谨性)

题1:判断一个数是否为2的幂次方

题目:给定一个正整数n,判断n是否是2的幂次方,要求时间复杂度O(1),空间复杂度O(1),不使用循环/递归。

详细答案:

核心逻辑:2的幂次方的二进制有一个显著特点——只有一个1,其余位都是0(例如:2=10、4=100、8=1000、16=10000)。而n-1的二进制,会将这个唯一的1变成0,后面的所有0变成1(例如:4-1=3=011、8-1=7=0111)。

因此,当n是正整数时,若满足n(n-1)==0,则n是2的幂次方。

补充说明:需要排除n=0的情况(0不是正整数,且0(-1)在计算机中是0,但0不是2的幂次方),最终判断条件为:n0且(n(n-1))==0。

示例:n=8→87=0→是;n=6(110)→65=4≠0→不是。

题2:字符串中第一个不重复的字符

题目:给定一个仅包含小写字母的字符串s,找出其中第一个不重复的字符,返回它的索引;若不存在,返回-1。要求尽量优化时间和空间。

详细答案:

核心思路:小写字母只有26个,可利用数组(哈希思想)统计每个字符出现的次数,再遍历字符串找到第一个次数为1的字符,避免使用复杂的哈希表,提升效率。

步骤:

创建一个长度为26的数组count,初始值都为0,对应2

文档评论(0)

1亿VIP精品文档

相关文档