1、可以使用Python的字典实现,对于一个特定的字符串,使用for循环遍历其中的字符,并保存成字典形式。字典的key为字符,value为字符在整个字符串中出现的次数。

2、拓展:如果题目为比较两个字符串是否相似,例如字符串str1 = "abcdefd"与字符串str2 = "bcadef"为相似的,因为字符串中出现的字符的次数是相同的。对于字符串str1以及字符串str2可以得到两个字典dict1以及dict2。此时可以使用模块operator中的方法对dict1以及dict2进行比较,即可得出是否为相似的字符串。

3、前导知识:

(1)关于Python的字典:dict1 = {'a':2, 'b':3, 'c':8, 'd':4}

  • 分别取字典的键、值:print(dict1.values(), dict1.keys())。结果:dict_values([4, 2, 8, 3]) dict_keys(['d', 'a', 'c', 'b']) 注意返回的是列表的形式。
  • 同时取字典的键、值:print(dict1.items())或者print(dict1)
  • 排序sorted()函数

对键正向排序(默认形式)

 dict1={'a':2,'e':3,'f':8,'d':4}
dict2 = sorted(dict1)
print(dict2)

输出:

 ['a', 'd', 'e', 'f']

对键反向排序

 dict1={'a':2,'e':3,'f':8,'d':4}
dict2 = sorted(dict1,reverse=True)
print(dict2)
结果:['f', 'e', 'd', 'a']

对值排序

 dict1={'a':2, 'e':3, 'f':8, 'd':4}
list1= sorted(dict1.values())
print(list1) #结果:[2, 3, 4, 8]

设值reverse=True 进行反向排序

也可以用dict1.items(),得到包含键,值的元组

由于迭代对象是元组,返回值自然是元组组成的列表

这里对排序的规则进行了定义,x指元组,x[1]是值,x[0]是键

dict1={'a':2,'e':3,'f':8,'d':4}
list1= sorted(dict1.items(),key=lambda x:x[1])
print(list1)
结果:

[('a', 2), ('e', 3), ('d', 4), ('f', 8)]
对键进行排序:

dict1={'a':2,'e':3,'f':8,'d':4}
list1= sorted(dict1.items(),key=lambda x:x[0])
print(list1)
结果:

[('a', 2), ('d', 4), ('e', 3), ('f', 8)]

(2)Python 字典(Dictionary) cmp()方法(python2.X)

Python 字典的 cmp() 函数用于比较两个字典元素。

Python 3.X 的版本中已经没有 cmp 函数,如果你需要实现比较功能,需要引入 operator 模块,适合任何对象,包含的方法有

4、面试题:字符串str1 = "abcdefd"与字符串str2 = "bcadef"为相似。

代码实现:

 # author by xuelisheng
import operator str1 = 'abcdefgaaa' # 给出字符串
str2 = 'abcdefg' # 给出字符串 d1 = {} # 给出字典
d2 = {} # 给出字典 for x in str1:
if x in d1:
d1[x] = d1[x] + 1
else:
d1[x] = 1 for x in str2:
if x in d2:
d2[x] = d2[x] + 1
else:
d2[x] = 1 print(operator.eq(d1, d2))

【面试题总结】1、统计字符串中某个字符出现的次数(2-Python实现)的更多相关文章

  1. 统计字符串中每个字符出现的次数(Python)

    #统计字符串中每个字符出现的次数 以The quick brown fox jumps over the lazy dog为例 message='The quick brown fox jumps o ...

  2. Java基础知识强化之集合框架笔记61:Map集合之统计字符串中每个字符出现的次数的案例

    1. 首先我们看看统计字符串中每个字符出现的次数的案例图解: 2. 代码实现: (1)需求 :"aababcabcdabcde",获取字符串中每一个字母出现的次数要求结果:a(5) ...

  3. 使用Map,统计字符串中每个字符出现的次数

    package seday13; import java.util.HashMap; import java.util.Map; /** * @author xingsir * 统计字符串中每个字符出 ...

  4. Java 13天基础 06天map集合小练习(黑马程序员) 统计字符串中每个字符出现的次数 (经典面试题)

    import java.util.HashMap; import java.util.Map; import java.util.Scanner; /** * 目标 : 输出一个字符串中每个字符出现的 ...

  5. Java中统计字符串中各个字符出现的次数

    import java.util.Iterator; import java.util.Set; import java.util.TreeMap; public class TreeMapDemo ...

  6. javascript 统计字符串中每个字符出现的次数

    var str = "abdcadfasfdbadfafdasdfasyweroweurowqrewqrwqrebwqrewqrejwq;;"; // console.log(nu ...

  7. Java案例——统计字符串中各种字符出现的次数

    /*案例:统计各种字符在字符串中出现的次数 分析:只考虑三种字符类型的情况下(大写字母,小写字母,数字) 1.使用Scanner 类获取字符串数据 2.遍历字符串得到每一个字符 3.判断每一个字符是那 ...

  8. C语言与汇编的嵌入式编程:统计字符串中各字符出现的次数

    原始C语言: #include<stdio.h> void main(){ ]; char pipei[] = "abcdefghijklmnopqrstuvwxyz" ...

  9. loadrunner统计字符串中指定字符出现的次数

    Action() { char *str="sdfas1,sdfsdf2,sdfsdfsdfdsf3,sdfsdfsdfsdfds4,fsdfdsf5,sdfdsfsd6,fsdfsd7sd ...

随机推荐

  1. 货币转换B

    描述 人民币和美元是世界上通用的两种货币之一,写一个程序进行货币间币值转换,其中:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮ ...

  2. Shell学习笔记:awk实现group by分组统计功能

    日常部分数据以 txt 的文件格式提供,为避免入库之后再进行统计的麻烦,故学习 shell 进行处理,减少工作量. 1.样例数据 # test.txt YD5Gxxx|6618151|68254490 ...

  3. STL源码剖析 - RB-tree

    在我看来,看源码是一件既痛苦又兴奋的事.当我们在推敲其中的难点时,是及其痛苦的,但当发现实现代码是那么丝滑简洁时,“wc, nb!”. 1. 导语 如果我们去看关联式容器map.set.multima ...

  4. computed和watch的使用场景

    转载地址:https://blog.csdn.net/yuwenshi12/article/details/78561372 从作用机制和性质上看待methods,watch和computed的关系 ...

  5. python3 matplotlib

    一.matplotlib数据可视化 1.https://matplotlib.org/ 2.figure图形窗口:figsize窗口大小,label轴标签:title标题:lim限制:plot绘图:s ...

  6. 通过字节码分析Java异常处理机制

    在上一次[https://www.cnblogs.com/webor2006/p/9691523.html]初步对异常表相关的概念进行了了解,先来回顾一下: 其源代码也贴一下: 下面来看一下jclas ...

  7. pyqt pyside qcombobox disable wheel scrolling

    pyqt pyside qcombobox disable wheel scrolling import sys from PyQt5 import QtCore, QtWidgets import ...

  8. git ls-files 列出被修改或者被删除的文件

    git ls-files 列出被修改或者被删除的文件 git ls-files -m -d

  9. 企业IT运维以及信息管理部服务器管理

    方法 1.服务器有必要保持简洁.除了必要的应用软件以及安全软件之外,尽量不要安全其它的软件. 2.要做好服务器帐号权利规划和分配,分配够用的权利就行,从而降低密码泄漏带来的损失. 3.注意关注服务器软 ...

  10. JAVA遇见HTML——Servlet篇:应用MVC架构实现项目

    java关键字“this”只能用在方法方法体内.当一个对象创建之后,java虚拟机就会给这个对象分配一个引用自身的指针,这个指针的名字就是this.只能在非静态方法中使用 package servle ...