【面试题总结】1、统计字符串中某个字符出现的次数(2-Python实现)
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实现)的更多相关文章
- 统计字符串中每个字符出现的次数(Python)
#统计字符串中每个字符出现的次数 以The quick brown fox jumps over the lazy dog为例 message='The quick brown fox jumps o ...
- Java基础知识强化之集合框架笔记61:Map集合之统计字符串中每个字符出现的次数的案例
1. 首先我们看看统计字符串中每个字符出现的次数的案例图解: 2. 代码实现: (1)需求 :"aababcabcdabcde",获取字符串中每一个字母出现的次数要求结果:a(5) ...
- 使用Map,统计字符串中每个字符出现的次数
package seday13; import java.util.HashMap; import java.util.Map; /** * @author xingsir * 统计字符串中每个字符出 ...
- Java 13天基础 06天map集合小练习(黑马程序员) 统计字符串中每个字符出现的次数 (经典面试题)
import java.util.HashMap; import java.util.Map; import java.util.Scanner; /** * 目标 : 输出一个字符串中每个字符出现的 ...
- Java中统计字符串中各个字符出现的次数
import java.util.Iterator; import java.util.Set; import java.util.TreeMap; public class TreeMapDemo ...
- javascript 统计字符串中每个字符出现的次数
var str = "abdcadfasfdbadfafdasdfasyweroweurowqrewqrwqrebwqrewqrejwq;;"; // console.log(nu ...
- Java案例——统计字符串中各种字符出现的次数
/*案例:统计各种字符在字符串中出现的次数 分析:只考虑三种字符类型的情况下(大写字母,小写字母,数字) 1.使用Scanner 类获取字符串数据 2.遍历字符串得到每一个字符 3.判断每一个字符是那 ...
- C语言与汇编的嵌入式编程:统计字符串中各字符出现的次数
原始C语言: #include<stdio.h> void main(){ ]; char pipei[] = "abcdefghijklmnopqrstuvwxyz" ...
- loadrunner统计字符串中指定字符出现的次数
Action() { char *str="sdfas1,sdfsdf2,sdfsdfsdfdsf3,sdfsdfsdfsdfds4,fsdfdsf5,sdfdsfsd6,fsdfsd7sd ...
随机推荐
- spring.factories配置文件的工厂模式
在springboot的各个依赖包下,我们经常看到META-INF/spring.factories这个文件.spring.factories文件的内容基本上都是这样的格式: # Initialize ...
- Python实现定时执行任务的三种方式简单示例
本文实例讲述了Python实现定时执行任务的三种方式.分享给大家供大家参考,具体如下: 1.定时任务代码 import time,os,sched schedule = sched.scheduler ...
- IDEA部署项目到远程服务器
一.idea安装阿里插件Alibaba Cloud Toolkit 二.添加Host 三.应用部署 四.修改源程序重新部署 五.查看实时日志 欲买桂花同载酒,终不似,少年游
- 服务器CPU架构演变过程
第一阶段: 单CPU,没啥好说的.和我们今天打游戏的台式机差不多. 第二阶段: 双CPU 或者 多CPU的SMP架构 或者 AMP架构.参考:http://www.lauterbach.com/smp ...
- C++——数组形参退化为指针
数组做形参退化为指针 如果数组作为函数参数,则数组形参会退化为指针,以下代码在编译器看来是等价的 ]); ]); void fun3(int a[]); void fun4(int *a); #inc ...
- 一:(1.1)了解MVC之路由重写
Mvc默认路由 //系统的Url路由规则 routes.MapRoute( name: "Default", url: "{controller}/{action}/{i ...
- Linux学习笔记(九)shell基础:echo、命令别名和常用快捷键
一.echo在屏幕上打印内容 echo [选项] [输出内容] -e 支持转义字符控制的字符转换 输出带颜色的文本 二.第一个脚本 编写脚本 注意: #!/bin/bash 此行不是注释,必须有 #! ...
- 【转】5种网络IO模型
5种网络IO模型(有图,很清楚) IO多路复用—由Redis的IO多路复用yinch Linux中对文件描述符的操作(FD_ZERO.FD_SET.FD_CLR.FD_ISSET
- python-----多线程笔记
多进程笔记: 多线程介绍: 多线程是为了同步完成多项任务,通过提高资源使用效率来提高系统的效率.线程是在同一时间需要完成多项任务的时候实现的. 最简单的比喻多线程就像火车的每一节车厢,而进程则是火车. ...
- Mongo db 简单介绍及命令笔记
首先来了解下什么是MongoDB ? MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB 旨在为W ...