编程笔试(解析及代码实现):字符串反转(字符串逆序输出)代码实现十多种方法对比(解析思路及其耗费时间)详细攻略
编程笔试(解析及代码实现):字符串反转(字符串逆序输出)代码实现十多种方法对比(解析思路及其耗费时间)详细攻略
目录
字符串反转(字符串逆序输出)代码实现十多种方法对比(解析思路及其耗费时间)详细攻略
耗费时间对比
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)
编程笔试(解析及代码实现):字符串反转(字符串逆序输出)代码实现十多种方法对比(解析思路及其耗费时间)详细攻略相关推荐
- C++_输入一个字符串,并逆序输出
C++_输入一个字符串,并逆序输出 #include<iostream> #include<string> using namespace std; /*** 输入一个字符串, ...
- python把字符串逆序输出_python实现对指定输入的字符串逆序输出的6种方法
python实现对指定输入的字符串逆序输出的6种方法 来源:中文源码网 浏览: 次 日期:2018年9月2日 [下载文档: python实现对指定输入的字符串逆序输出的6种方法.txt ...
- 输入字符串,逆序输出(两种方法)
问题描述 从键盘上输入一组字符串,实现逆序输出. 解题思路 方法一:输出的时候从(n-1)的数据往前依次输出. 方法二:假设输入n个字符,字符串默认末尾补上' \0 ',将第0个字符和第(n-1)个字 ...
- python逆序输出字符串_python实现对指定输入的字符串逆序输出的6种方法
编写一个Python程序,提示用户输入一个字符串,程按照你的要分享编写的逆序显示字符串的Python3程序如下 s = input("请输入一个字符串:")print(s[::-1 ...
- 数字类型转换成字符串类型并逆序输出
比如将a = 123456转换成字符串类型,并逆序输出为char b = 654321 具体实现如下: #include <stdio.h> #include <conio.h> ...
- python字符串逆序输出的6种方法
对于一个给定的字符串,逆序输出,这个任务对于python来说是一种很简单的操作,毕竟强大的列表和字符串处理的一些列函数足以应付这些问题 了,今天总结了一下python中对于字符串的逆序输出的几 ...
- python字符串逆序输出代码_一行代码实现字符串逆序输出
字符串逆序实现三部曲: 1.将字符串转为数组,一个字符为数组的一个元素: 2.将数组倒置: 3.再将数组元素拼接为字符串. 方法一: var str = "naYgniYgnehZ" ...
- 字符串按单词逆序输出c 语言,字符串中的每个单词倒序输出问题
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include void sub_reverse(char *); int main() { char str[256] = "The onl ...
- 通用版!完整代码,单链表SingleLinkedList增删改查,反转,逆序,有效数据等Java实现
文章目录 节点类 链表类(主要) 测试类 小结 节点类 可以根据需要,对节点属性进行修改.注意重写toString()方法,以便后续的输出操作. //节点类 class Node {public in ...
最新文章
- c# BackgroundWorker组件介绍(属性、方法、事件)
- Evince中文乱码
- 76. Leetcode 295. 数据流的中位数 (堆-技巧一-固定堆)
- Java的加载与执行
- 【从入门到放弃-Java】并发编程-锁-synchronized
- VMware 发布的版本 Build 与个版本对应关系
- tshark (wireshark)笔记
- C++【EasyX】俄罗斯方块
- 台大陈蕴侬、李宏毅“应用深度学习”课程(国语)
- proxysql on github
- 备案 前置或专项审批的内容
- jsp在线编辑器|PHP在线编辑器|asp在线编辑器|.net在线编辑器|asp.net在线编辑器|在线Word编辑器
- cad插入块_怎么才能将两张CAD图纸合并为一张?
- mset redis_Redis MSET 命令
- 用Python解决女朋友看电影没字幕的需求
- VScode 常用插件推荐
- 河南对口计算机本科学校有哪些,河南省 2017 年普通高等学校对口招收中等职业学校毕业生考试-计算机类基础课参考答案...
- excel单元格内容拆分_Excel中把一个单元格内容拆分到多个单元格内的两种方法...
- java i18n utf_struts2.0乱码 在struts.xml里面设置struts.i18n.encoding=utf-8依然出现乱码是怎么回事呀...
- java时间代码_java处理日期时间代码
热门文章
- 论文笔记:ShuffleNet v2
- Caffe官方教程翻译(8):Brewing Logistic Regression then Going Deeper
- mysql集群经常无法truncate_失败的mysql cluster配置-无法顺利转换已有数据
- JS 总结之函数、作用域链
- DockOne微信分享( 九十一):打造百亿级数据处理量的弹性调度容器平台
- Linux运行Java出现“Exception in thread main java.lang.OutOfMemoryError: Java heap space”报错...
- 误删Windows文件后恢复技巧
- python中的for循环
- 常见宽带错误解决方法
- 经典面试题:为什么 ConcurrentHashMap 的读操作不需要加锁?