广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中实现字符串反转的方法有哪些
  • 303
分享到

Python中实现字符串反转的方法有哪些

2023-06-30 14:06:33 303人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

今天小编给大家分享一下python中实现字符串反转的方法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。前言一道题目是实

今天小编给大家分享一下python中实现字符串反转的方法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

前言

一道题目是实现一个反转字符串的函数,具体如下:

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。

不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。

我们可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。

示例 1:

输入:["h","e","l","l","o"]
输出:["o","l","l","e","h"]

示例 2:

输入:["H","a","n","n","a","h"]
输出:["h","a","n","n","a","H"]

自己动手操作了一下,大概有如下几种方式

方法1

如果不考虑题目中所说的“原地修改输入数组”,可以借助一个中间列表来实现

从列表的尾部向前遍历,可以通过如下2种方式定义索引:

def reverseString_1(self, s):"""思路:借助一个中间变量temp,然后从s的尾部提取,把元素追加到temp中:param s::return:"""temp = []for i in range(len(s)):temp.append(s[len(s)-1-i])return tempdef reverseString_2(self, s):"""思路:和方法4一样,不过换个实现方式(和第8题方法2用到的倒序循环一样):param s::return:"""temp = []for i in range(len(s)-1, -1, -1): # range中的表示索引范围,len(s)-1表示遍历的第一个元素(也就是从最后一个元素开始遍历);# 第一个-1表示最后一个位置,不过由于遍历范围右边不闭合,所以这里其实最终遍历的是第一个元素;# 第二个-1表示步长,每次-1,即从后往前遍历temp.append(s[i])return temp

方法2

思考一下:

反转字符串其实可以转换为“首尾元素串互换”,如:第1位和倒数第1位互换、第2位和倒数第2位互换、第3位和倒数第3位互换

[1,2,3,4,5,6]
[6,5,4,3,2,1]

这样的话,可以定义2个指针,一个从首位遍历往后遍历,一个从末尾往前遍历;

然后每次遍历都交换2个位置的元素,一直遍历到中间元素;

def reverseString(self, s):""":type s: List[str]:rtype: None Do not return anything, modify s in-place instead."""i = 0 # 第一个指针,从首部遍历j = len(s) - 1 # 第二个指针,从尾部遍历while j > i: # 如果j>i就一直循环,直到2个指针相遇s[i], s[j] = s[j], s[i] # 交换2个位置的元素i += 1j -= 1return s

方法3

这个方法比较绕,而且在提交时,由于超时导致并未通过(系统给出的数组太长导致),不过自己测试时给了几个数组,也能正常倒序输出

思路如下:既然是倒序输出,可以把第1个和第2个元素互换,然后第2个和第3个互换…直到把第1个元素挪到了最后的位置;

但是此时还未结束,这只是把第1个元素挪到了最后,还需要重复上述步骤,再把原先的第2个元素(现在的第1个元素)挪到倒数第2个位置(注意:此时的最后一个元素不能动)

按照上述步骤,把所有元素都挪动一遍,就完成了

def reverseString(self, s):"""思路::type s: List[str]:rtype: None Do not return anything, modify s in-place instead."""n = 0while n < len(s):i = 0for j in range(1, len(s)-n):s[i], s[j] = s[j], s[i]i += 1n += 1return s

方法4

利用切片来实现倒序输出:

'''学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程pdf电子书!'''def reverseString(self, s):"""思路:切片s[::-1]表示反转s中的元素s[:]表示数组中所有子模块s[:]=s[::-1]表示将原数组反转后赋值给s中每一个对应的位置s=s[::-1]表示将s反转后赋值给新的对象s,与题意原地修改不符:param s::return:"""s[:] = s[::-1]return s

方法5

使用reverse()方法,它会对原列表进行反向排序注意:reverse只对list有效)

def reverseString_6(self, s):""":param s::return:"""s.reverse()return s

不过reverse()方法的源码,会发现它其实就是利用的切片,如下:

Python中实现字符串反转的方法有哪些

以上就是“Python中实现字符串反转的方法有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网Python频道。

--结束END--

本文标题: Python中实现字符串反转的方法有哪些

本文链接: https://www.lsjlt.com/news/329754.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python中实现字符串反转的方法有哪些
    今天小编给大家分享一下Python中实现字符串反转的方法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。前言一道题目是实...
    99+
    2023-06-30
  • Python字符串反转实现的方法有哪些
    这篇文章主要介绍“Python字符串反转实现的方法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python字符串反转实现的方法有哪些”文章能帮助大家解决问题...
    99+
    2022-10-19
  • java字符串反转的方法有哪些
    这篇文章主要介绍了java字符串反转的方法有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、用stringBuffer或者stringBuilder自带的reverse...
    99+
    2023-06-29
  • Python中五种实现字符串反转的方法
    目录前言方法1方法2方法3方法4方法5前言 一道题目是实现一个反转字符串的函数,具体如下: 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给...
    99+
    2022-11-11
  • python方法如何实现字符串反转
    目录python方法实现字符串反转方法一:反转列表法方法二:循环反向迭代法方法三:反向循环迭代法方法四:倒序切片法方法五:遍历索引法方法六:列表弹出法方法七:列表解析式法方法八:反向...
    99+
    2023-01-31
    python字符串反转 python字符串 python反转字符串
  • Python实现字符串反转的6种方法
    1.使用字符串切片 >>> s = "python">>> s[::-1]'nohtyp'>>> 2.使用列表的reverse方法 >>> s = "python">>> lst = list(s)>...
    99+
    2023-09-25
    python 开发语言
  • PHP实现字符串反转的方法
    小编给大家分享一下PHP实现字符串反转的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!PHP实现字符串反转的方法:1、通过php自带的strrev函数实现反转...
    99+
    2023-06-08
  • Shell中实现字符串反转方法分享
    在做关键词清洗过程中,需要将一类不符合某个字结尾的词过滤出来,思路是把这一批词按最后一个字排序,于是想到了先把这些词反转一下,如把12345转为54321,好像以前在夜息的文章里看过用shell可以实现,就...
    99+
    2022-06-04
    字符串 方法 Shell
  • python中有哪些字符串方法
    python中有哪些字符串方法?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,Python...
    99+
    2023-06-14
  • python中字符串方法有哪些
    python中字符串方法有哪些?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;...
    99+
    2023-06-14
  • Python中字符串的方法有哪些
    Python中字符串的方法有很多,下面是一些常用的字符串方法:- `capitalize()`: 将字符串的第一个字符转换为大写,并...
    99+
    2023-08-30
    Python
  • Python字符串的转义字符有哪些
    这篇文章主要讲解了“Python字符串的转义字符有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python字符串的转义字符有哪些”吧!什么是转义字符转义字符是指,用一些普通字符的组合来...
    99+
    2023-06-29
  • JAVA多种方法实现字符串反转
    本人自己思考+网络搜罗,分类整理了以下4类9种方法: A类:使用JAVA原生方法 -A1:使用StringBuffer的reverse方法 -A2:使用StringBuilder的r...
    99+
    2022-11-12
  • oracle中转义字符串的方法有哪些
    在Oracle中,可以使用以下方法来转义字符串:1. 使用单引号转义:如果字符串中包含单引号,可以使用两个连续的单引号来表示一个单引...
    99+
    2023-08-31
    oracle
  • python字符串大小写转换的方法有哪些
    这篇文章主要介绍“python字符串大小写转换的方法有哪些”,在日常操作中,相信很多人在python字符串大小写转换的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python字符串大小写转换的方法...
    99+
    2023-07-05
  • JavaScript字符串转换数字的方法有哪些
    这篇文章主要介绍“JavaScript字符串转换数字的方法有哪些”,在日常操作中,相信很多人在JavaScript字符串转换数字的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望...
    99+
    2022-10-19
  • Java字符串中指定部分反转的方式有哪些
    这篇文章主要讲解了“Java字符串中指定部分反转的方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java字符串中指定部分反转的方式有哪些”吧!将“asdfghj”反转为“ashgf...
    99+
    2023-06-22
  • php整形转字符串的方法有哪些
    PHP整形转字符串的方法有以下几种:1、(string)使用(string)强制将整数转换为字符串类型。2、strval()使用st...
    99+
    2023-05-13
    php整形转字符串 php
  • php数组转字符串的方法有哪些
    有以下几种方法可以将PHP数组转换为字符串:1. 使用implode()函数:implode()函数将数组中的元素连接成一个字符串,...
    99+
    2023-08-23
    php
  • python中字符串操作方法有哪些
    这期内容当中小编将会给大家带来有关python中字符串操作方法有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专注的是解决...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作