【试题一】
float类型的数能否进行&、|、^等二进制运算?
【试题二】
给定一个单链表,判断该单链表是否是回文单链表,要求时间复杂度为O(n),空间复杂度为O(1)。
【试题三】
给定一个数n,写一个程序计算,小于或等于n的非负整数中所含数字1的个数,例如当n为13时,返回值为6,分别出现在1、10、11、12和13中,数字1出现了6次。
【试题四】
在一个数组中,num[i]!=num[i+1],如果数组的一个值比其相邻的值都大,那么该值称为该数组的一个peak element,一个数组中可以有多个peak element,写一个函数返回任意一个peak element的下标即可。
例如数组{1, 2, 1, 3, 5, 4, 8},其中存在的peak element有2、5。
【试题五】
写一个关于通配符的函数,其中'?'表示任意一个字符,‘*’表示任意多个任意字符。写一个函数bool isMatch(const char *p, const char *s),判断s能够匹配字符串p。
例如,
p="aba", s="a*",返回true
p = "aa", s="a",返回false
p="abac", s="a?ac",返回true
p="abcc", s="a*",返回true
p="abba", s="c*b*a*",返回false