编程笔试(解析及代码实现):字符串反转(字符串逆序输出)代码实现十多种方法对比(解析思路及其耗费时间)详细攻略

目录

字符串反转(字符串逆序输出)代码实现十多种方法对比(解析思路及其耗费时间)详细攻略

耗费时间对比

T1、使用字符串切片的方法

T2、使用reversed()方法

T3、使用list和reverser()方法

T4、使用reduce方法

T5、while循环+空列表+字符串拼接

T6、利用list和字符串拼接

T7、while循环+字符串拼接

T8、利用栈的思维

T9、利用递归思想

T10、利用一行代码(for循环+字符串拼接)

T11、利用for循环+倒叙提字母+字合并符串


网友思路参考 文章:Reverse a string in Python - Stack Overflow

字符串反转(字符串逆序输出)代码实现十多种方法对比(解析思路及其耗费时间)详细攻略

耗费时间对比

方法 耗费时间 
T1、使用字符串切片的方法 str01: 0.004107
T2、使用reversed()方法 str02: 0.007081
T3、使用list和reverser()方法 str03: 0.006830
T4、使用reduce方法 str04: 0.202377
T5、while循环+空列表+字符串拼接 str05: 0.027280
T6、利用list和字符串拼接 str06: 0.036437
T7、while循环+字符串拼接 str07: 0.036202
T8、利用栈的思维 str08: 0.057554
T9、利用递归思想 最长!
T10、利用一行代码(for循环+字符串拼接) str10: 0.030771
​T11、利用for循环+倒叙提字母+字合并符串 str11: 0.027477

T1、使用字符串切片的方法

import time# str_temp = '123456789'
str_temp = '123456789'*10000# T1、使用字符串切片的方法
STime1 = time.clock()
str01 = str_temp[::-1]
print(str01)ETime1 = time.clock()
CostTime1=ETime1-STime1
print('str01:','%.6f' % CostTime1)

T2、使用reversed()方法

# T2、使用reversed()方法
STime2 = time.clock()
str02 = ''.join(reversed(str_temp))
print(str02)ETime2 = time.clock()
CostTime2=ETime2-STime2
print('str02:','%.6f' % CostTime2)

T3、使用list和reverser()方法

# T3、使用list和reverser()方法
STime3 = time.clock()
str_temp2list = list(str_temp)
str_temp2list.reverse()
str03 = ''.join(str_temp2list)
print(str03)ETime3 = time.clock()
CostTime3=ETime3-STime3
print('str03:','%.6f' % CostTime3)

T4、使用reduce方法

# T4、使用reduce方法
from functools import reduce
STime4 = time.clock()
str04 = reduce(lambda x,y : y+x, str_temp)
print(str04)ETime4 = time.clock()
CostTime4=ETime4-STime4
print('str04:','%.6f' % CostTime4)

T5、while循环+空列表+字符串拼接

# T5、for循环+空列表+字符串拼接
STime5 = time.clock()
str05 = []
str_temp_len = len(str_temp)
while str_temp_len:str_temp_len -= 1str05.append(str_temp[str_temp_len])
print(''.join(str05))ETime5 = time.clock()
CostTime5=ETime5-STime5
print('str05:','%.6f' % CostTime5)

T6、利用list和字符串拼接

# T6、利用list和字符串拼接
STime6 = time.clock()
str06 = ''
str_temp_len = len(str_temp)
for i in range(str_temp_len - 1, -1, -1):str06 += str_temp[i]
print(str06)ETime6 = time.clock()
CostTime6=ETime6-STime6
print('str06:','%.6f' % CostTime6)

T7、while循环+字符串拼接

# T7、while循环+字符串拼接
STime7 = time.clock()
str07 = ''
str_temp_len = len(str_temp)
while str_temp_len:str_temp_len -= 1str07 += str_temp[str_temp_len]
print(str07)ETime7 = time.clock()
CostTime7=ETime7-STime7
print('str07:','%.6f' % CostTime7)

T8、利用栈的思维

# T8、利用栈的思维
STime8 = time.clock()
str_temp2list = list(str_temp) #模拟全部入栈
str08 = ""
while len(str_temp2list)>0:str08 += str_temp2list.pop() #模拟出栈
print(str08)ETime8 = time.clock()
CostTime8=ETime8-STime8
print('str08:','%.6f' % CostTime8)

T9、利用递归思想

#  T9、利用递归思想
def r_string(str_temp):if len(str_temp) == 1:return str_tempreturn str_temp[-1] + r_string(str_temp[:-1])
STime9 = time.clock()
str09 = r_string(str_temp)
print(str09)ETime9 = time.clock()
CostTime9=ETime9-STime9
print('str09:','%.6f' % CostTime9)

T10、利用一行代码(for循环+字符串拼接)

#  T10、利用一行代码(for循环+字符串拼接)
STime10 = time.clock()
str10 = ''.join(str_temp[len(str_temp) - i - 1] for i in range(len(str_temp)))
print(str10)ETime10 = time.clock()
CostTime10=ETime10-STime10
print('str10:','%.6f' % CostTime10)

T11、利用for循环+倒叙提字母+字合并符串

# T11、利用for循环+倒叙提字母+字合并符串
STime11 = time.clock()
str11=''
for i in range(1,len(str_temp)+1):str11=str11+str_temp[-i]
print(str11)ETime11 = time.clock()
CostTime11=ETime11-STime11
print('str11:','%.6f' % CostTime11)

编程笔试(解析及代码实现):字符串反转(字符串逆序输出)代码实现十多种方法对比(解析思路及其耗费时间)详细攻略相关推荐

  1. C++_输入一个字符串,并逆序输出

    C++_输入一个字符串,并逆序输出 #include<iostream> #include<string> using namespace std; /*** 输入一个字符串, ...

  2. python把字符串逆序输出_python实现对指定输入的字符串逆序输出的6种方法

    python实现对指定输入的字符串逆序输出的6种方法 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  python实现对指定输入的字符串逆序输出的6种方法.txt  ...

  3. 输入字符串,逆序输出(两种方法)

    问题描述 从键盘上输入一组字符串,实现逆序输出. 解题思路 方法一:输出的时候从(n-1)的数据往前依次输出. 方法二:假设输入n个字符,字符串默认末尾补上' \0 ',将第0个字符和第(n-1)个字 ...

  4. python逆序输出字符串_python实现对指定输入的字符串逆序输出的6种方法

    编写一个Python程序,提示用户输入一个字符串,程按照你的要分享编写的逆序显示字符串的Python3程序如下 s = input("请输入一个字符串:")print(s[::-1 ...

  5. 数字类型转换成字符串类型并逆序输出

    比如将a = 123456转换成字符串类型,并逆序输出为char b = 654321 具体实现如下: #include <stdio.h> #include <conio.h> ...

  6. python字符串逆序输出的6种方法

        对于一个给定的字符串,逆序输出,这个任务对于python来说是一种很简单的操作,毕竟强大的列表和字符串处理的一些列函数足以应付这些问题 了,今天总结了一下python中对于字符串的逆序输出的几 ...

  7. python字符串逆序输出代码_一行代码实现字符串逆序输出

    字符串逆序实现三部曲: 1.将字符串转为数组,一个字符为数组的一个元素: 2.将数组倒置: 3.再将数组元素拼接为字符串. 方法一: var str = "naYgniYgnehZ" ...

  8. 字符串按单词逆序输出c 语言,字符串中的每个单词倒序输出问题

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include void sub_reverse(char *); int main() { char str[256] = "The onl ...

  9. 通用版!完整代码,单链表SingleLinkedList增删改查,反转,逆序,有效数据等Java实现

    文章目录 节点类 链表类(主要) 测试类 小结 节点类 可以根据需要,对节点属性进行修改.注意重写toString()方法,以便后续的输出操作. //节点类 class Node {public in ...

最新文章

  1. c# BackgroundWorker组件介绍(属性、方法、事件)
  2. Evince中文乱码
  3. 76. Leetcode 295. 数据流的中位数 (堆-技巧一-固定堆)
  4. Java的加载与执行
  5. 【从入门到放弃-Java】并发编程-锁-synchronized
  6. VMware 发布的版本 Build 与个版本对应关系
  7. tshark (wireshark)笔记
  8. C++【EasyX】俄罗斯方块
  9. 台大陈蕴侬、李宏毅“应用深度学习”课程(国语)
  10. proxysql on github
  11. 备案 前置或专项审批的内容
  12. jsp在线编辑器|PHP在线编辑器|asp在线编辑器|.net在线编辑器|asp.net在线编辑器|在线Word编辑器
  13. cad插入块_怎么才能将两张CAD图纸合并为一张?
  14. mset redis_Redis MSET 命令
  15. 用Python解决女朋友看电影没字幕的需求
  16. VScode 常用插件推荐
  17. 河南对口计算机本科学校有哪些,河南省 2017 年普通高等学校对口招收中等职业学校毕业生考试-计算机类基础课参考答案...
  18. excel单元格内容拆分_Excel中把一个单元格内容拆分到多个单元格内的两种方法...
  19. java i18n utf_struts2.0乱码 在struts.xml里面设置struts.i18n.encoding=utf-8依然出现乱码是怎么回事呀...
  20. java时间代码_java处理日期时间代码

热门文章

  1. 论文笔记:ShuffleNet v2
  2. Caffe官方教程翻译(8):Brewing Logistic Regression then Going Deeper
  3. mysql集群经常无法truncate_失败的mysql cluster配置-无法顺利转换已有数据
  4. JS 总结之函数、作用域链
  5. DockOne微信分享( 九十一):打造百亿级数据处理量的弹性调度容器平台
  6. Linux运行Java出现“Exception in thread main java.lang.OutOfMemoryError: Java heap space”报错...
  7. 误删Windows文件后恢复技巧
  8. python中的for循环
  9. 常见宽带错误解决方法
  10. 经典面试题:为什么 ConcurrentHashMap 的读操作不需要加锁?