52翻转字符串

题目

给定一个字符串,逐个翻转字符串中的每个单词。

您在真实的面试中是否遇到过这个题? Yes
说明
单词的构成:无空格字母构成一个单词
输入字符串是否包括前导或者尾随空格?可以包括,但是反转后的字符不能包括
如何处理两个单词间的多个空格?在反转字符串中间空格减少到只含一个

样例
“this is a book”
输出:
“siht si a koob”

思路

  • 一开始以为是将字符串的每一个单词进行翻转
    代码:
class Solution:"""@param: s: A string@return: A string"""def reverseWords(self, s):# write your code hereif s=="":return s#将s进行切片,按空格s=s.split()for i in range(len(s)):#翻转单词s[i]=s[i][::-1]#将s进行组合,按空格a=" "a=a.join(s)return a

a=Solution();a.reverseWords(“this is a book”)
‘siht si a koob’

  • 后面发现直接就是将字符串内的单词进行翻转(无辜脸)
  • 将字符串直接按空格切片,然后再将字符串翻转,用s[::-1],然后再用空格进行组合成新的字符串。

代码

class Solution:"""@param: s: A string@return: A string"""def reverseWords(self, s):# write your code hereif s=="":return s#将s进行切片,按空格s=s.split()s=s[::-1]#将s进行组合,按空格a=" "a=a.join(s)return a

128哈希函数

题目

http://www.lintcode.com/zh-cn/problem/hash-function/#

在数据结构中,哈希函数是用来将一个字符串(或任何其他类型)转化为小于哈希表大小且大于等于零的整数。一个好的哈希函数可以尽可能少地产生冲突。一种广泛使用的哈希函数算法是使用数值33,假设任何字符串都是基于33的一个大整数,比如:

hashcode(“abcd”) = (ascii(a) * 333 + ascii(b) * 332 + ascii(c) *33 + ascii(d)) % HASH_SIZE

= (97* 333 + 98 * 332 + 99 * 33 +100) % HASH_SIZE= 3595978 % HASH_SIZE

其中HASH_SIZE表示哈希表的大小(可以假设一个哈希表就是一个索引0 ~ HASH_SIZE-1的数组)。

给出一个字符串作为key和一个哈希表的大小,返回这个字符串的哈希值。

您在真实的面试中是否遇到过这个题? Yes
说明
For this problem, you are not necessary to design your own hash algorithm or consider any collision issue, you just need to implement the algorithm as described.

样例
对于key=”abcd” 并且 size=100, 返回 78

思路

  • 这道题按着公式进行运算即可,只是很容易出现时间和内存问题
  • 可将33**n,转化为res=res * 33,解决 Time Limit Exceeded
  • ord(a) #a的ascii码
  • chr(b) #b是ascii码,它对应的字符是

代码

class Solution:"""@param: key: A string you should hash@param: HASH_SIZE: An integer@return: An integer"""def hashCode(self, key, HASH_SIZE):# write your code hereresult=0res=1for i in range(len(key)-1,-1,-1):result=ord(key[i])*res%HASH_SIZE+resultres=res*33%HASH_SIZEresult=result%HASH_SIZEreturn result

python_lintcode_52翻转字符串_128哈希函数相关推荐

  1. 字符串哈希函数算法的PHP 实现

    恩...或许还有朋友不清楚字符串的哈希函数到底有什么用,这个用处呢,就是将字符串转换成数字,同时让所得数字尽量平均的分布在容器中,换句话说就是让字符串得到相同数字这种情况尽可能少的出现.当然咯...容 ...

  2. 常用哈希函数的比较及其实现

    基本概念 所谓完美哈希函数.就是指没有冲突的哈希函数.即对随意的 key1 != key2 有h(key1) != h(key2). 设定义域为X,值域为Y, n=|X|,m=|Y|.那么肯定有m&g ...

  3. 【C 语言】字符串模型 ( 字符串翻转模型 | 抽象成业务函数 | 形参返回值 | 函数返回值 | 函数形参处理 | 形参指针判空 )

    文章目录 一.字符串翻转模型 业务函数 二.完整代码示例 一.字符串翻转模型 业务函数 将上一篇博客 [C 语言]字符串模型 ( 字符串翻转模型 ) 的代码 , 主要业务逻辑 , 抽象成函数 ; 字符 ...

  4. B00013 字符串哈希函数

    哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值. 哈希函数用途广泛,这个程序给出了绝大多数常用的哈希函数.源程序来自:哈希算法_百度百科. 程序员可以根据自己的 ...

  5. C++ string常用函数(翻转字符串、获得字符串子串)(更新中)

    1. 使用函数翻转字符串本身 string str("1234567"); algorithm的revserse函数 reverse(str.begin(), str.end()) ...

  6. 字符串哈希函数(String Hash Functions)

    哈希函数举例 http://www.cse.yorku.ca/~oz/hash.html Node.js使用的哈希函数 https://www.npmjs.org/package/string-has ...

  7. Python 哈希函数与消息认证实验

    目录 前言 一.计算哈希值和消息认证 1.引入库 2.实现 二.哈希函数的雪崩效应 实现 三.暴力破解MD5 1.引入库 2.实现 总结 前言 提示:测试运行环境为 python3.7.5,IDE为P ...

  8. leetcode 151. 翻转字符串里的单词

    难度:中等 频次:69 题目: 给你一个字符串 s ,逐个翻转字符串中的所有 单词 . 单词 是由非空格字符组成的字符串.s 中使用至少一个空格将字符串中的 单词 分隔开. 请你返回一个翻转 s 中单 ...

  9. 认识哈希函数(散列函数)

    哈希函数(散列函数),哈希函数的输入域可以是非常大的范围,比如任意一个字符串,但是输出域是固定的范围,假设为S,并具有如下性质: 1.典型的哈希函数都有无限的输入值域 2.当给哈希函数传入相同的输入值 ...

  10. 现代密码学5.1--哈希函数定义

    现代密码学5.1--哈希函数定义 密码学的假设 抗碰撞哈希函数定义 与数据结构中定义的哈希函数的不同 哈希函数的密钥 安全性:抗碰撞哈希函数>抗二次原像/抗目标碰撞哈希函数>抗原像哈希函数 ...

最新文章

  1. 创业公司技术总监,去上市公司面试,结果凉了!
  2. Spring Cloud 微服务开发系列整理
  3. 《数据库原理与应用(第3版)》——习题
  4. vue.js项目文件搭建
  5. 《SAS编程与数据挖掘商业案例》学习笔记之一
  6. [转]云计算:SaaS、PaaS、IaaS、CaaS
  7. 使用若依前后端分离下载需要授权的url文件
  8. 杨建:网站加速--系统架构篇
  9. 24.TCP/IP 详解卷1 --- TCP 的未来和性能
  10. pmp学习资料下载-pmp备考
  11. 问的书写规则是什么意思_汉字书写规则
  12. css选择文件的图片大小,怎么用css设置图片大小
  13. KTV房间一直显示连接服务器失败,KTV点歌服务器死机、卡歌、蓝屏的解决办法
  14. java什么是继承_JAVA中什么是继承?
  15. 2018主流服务器cpu,【热门服务器CPU排行榜】2021热门服务器CPU排名_热门服务器CPU排行榜10强-太平洋产品报价...
  16. Arun Murthy谈Apache YARN
  17. windows7 配置php开发环境
  18. 数据结构:八大数据结构分类及图解
  19. Pikachu靶场之越权漏洞详解
  20. php-beast源码加密

热门文章

  1. 阿里云对象存储OSS费用内容的说明
  2. 如何查看电脑CPU温度,笔记本温度显示怎么开启
  3. 为什么网站打得开,却ping不通, 网站却打得开
  4. 微信小程序 —— 成员管理及开发管理
  5. Assembler--Error: invalid instruction suffix for `push‘
  6. 搭建一个 软件授权码管理系统
  7. Windows7Windows10兼容红色警戒
  8. android camera预览翻转,android camera yuv帧水平翻转实例
  9. 计算机系统变慢的原因,计算机系统运行速度变慢4大原因
  10. 邓_phpcms_二次开发_留言板