求教 RT,这个问题想要考察的应该是测试思维能力?还是代码编程能力呢?
应该是考察 ascii 编码吧。作为一个测试,你是否还会考虑字符是否为空,特殊字符,空格,字符长度等情况吧。编程能力和测试能力一起考察了。
\w*
不是很明白。。。只统计字符串的字母个数,那不就个 len 函数就完了么~
细思极恐啊,咋一看,想到的是这个字符串是数字 + 字母,仔细一想,这个字符串奇形怪状什么都有,这要是写代码,得好几个 if 判断
代码实现该功能
方法一:可以通过字符在 ASCII 码表里有序号一一对应来判断,就不用写太多 if 判断了
a~z 小写英文字母的取值范围为 97~122
A~Z 大写英文字母的取值范围为 65~90
例如用python实现:
def numbercharacters(sstr):
characters = []
others = []
for i in range(len(sstr)):
if ord(sstr[i]) in range(65, 91) or ord(sstr[i]) in range(97, 123):
characters.append(sstr[i])
else:
others.append(sstr[i])
return len(characters)
print("The number of characters is " + str(numbercharacters("abc12,/'io")))
方法二:用正则匹配
回答不了这个问题;
只能回答楼上
echo 'aB12c3'|grep -o '[^a-zA-Z]' |wc -l
echo 'aB12c34'|grep -o '[a-zA-Z]' |wc -l
python collections Counter
这是什么公司的面试题啊。 考察编程思路。注重逻辑。可以先正则,再将每个字母与频次存字典即可