问答 统计字符串里的字母个数怎么测试?

_comeSoon · 2018年11月26日 · 最后由 知無涯 回复于 2018年12月28日 · 1448 次阅读

求教 RT,这个问题想要考察的应该是测试思维能力?还是代码编程能力呢?

共收到 11 条回复 时间 点赞

应该是考察 ascii 编码吧。作为一个测试,你是否还会考虑字符是否为空,特殊字符,空格,字符长度等情况吧。编程能力和测试能力一起考察了。

不是很明白。。。只统计字符串的字母个数,那不就个 len 函数就完了么~

zlp 回复

应该是要正则\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

题目已经说清楚是统计字母个数了,可以直接匹配 A-Z 或 a-z

9楼 已删除
仅楼主可见

python collections Counter

这是什么公司的面试题啊。 考察编程思路。注重逻辑。可以先正则,再将每个字母与频次存字典即可

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册