问题

该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/3933 访问。

编写一个函数,其作用是将输入的字符串反转过来。

输入: "hello"

输出: "olleh"

输入: "A man, a plan, a canal: Panama"

输出: "amanaP :lanac a ,nalp a ,nam A"


Write a function that takes a string as input and returns the string reversed.

Input: "hello"

Output: "olleh"

Input: "A man, a plan, a canal: Panama"

Output: "amanaP :lanac a ,nalp a ,nam A"


示例

该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/3933 访问。

public class Program {public static void Main(string[] args) {var s = "A man, a plan, a canal: Panama";var res = ReverseString(s);Console.WriteLine(res);s = "private static string ReverseString(string s)";res = ReverseString2(s);Console.WriteLine(res);s = "using System.Collections.Generic;";res = ReverseString3(s);Console.WriteLine(res);s = "var res = ReverseString(s);";res = ReverseString4(s);Console.WriteLine(res);s = "Console.WriteLine(res);";res = ReverseString5(s);Console.WriteLine(res);s = "var sb = new StringBuilder();";res = ReverseString6(s);Console.WriteLine(res);Console.ReadKey();}private static string ReverseString(string s) {//LeetCode超时未ACvar stack = new Stack<char>();foreach(var c in s) {stack.Push(c);}var res = string.Empty;while(stack.Count != 0) {res += stack.Pop();}return res;}private static string ReverseString2(string s) {//LeetCode超时未ACvar list = new List<char>();foreach(var c in s) {list.Add(c);}var res = string.Empty;for(var i = list.Count - 1; i >= 0; i--) {res += list[i];}return res;}private static string ReverseString3(string s) {var length = s.Length;var i = 0;var j = length - 1;var chars = new char[length];while(i <= length - 1) {chars[j] = s[i];i++;j--;}return new string(chars);}private static string ReverseString4(string s) {var chars = s.ToCharArray();var start = 0;var end = s.Length - 1;while(start < end) {var swap = chars[start];chars[start] = chars[end];chars[end] = swap;start++;end--;}return new String(chars);}private static string ReverseString5(string s) {var sb = new StringBuilder();for(var i = s.Length - 1; i >= 0; i--) {sb.Append(s[i]);}return sb.ToString();}private static string ReverseString6(string s) {var arr = s.ToCharArray();Array.Reverse(arr);return new string(arr);}}

以上给出6种算法实现,以下是这个案例的输出结果:

该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/3933 访问。

amanaP :lanac a ,nalp a ,nam A
)s gnirts(gnirtSesreveR gnirts citats etavirp
;cireneG.snoitcelloC.metsyS gnisu
;)s(gnirtSesreveR = ser rav
;)ser(eniLetirW.elosnoC
;)(redliuBgnirtS wen = bs rav

分析:

显而易见,以上6种算法的时间复杂度均为:  。

C#LeetCode刷题之#344-反转字符串​​​​​​​(Reverse String)相关推荐

  1. C#LeetCode刷题之#443-压缩字符串​​​​​​​(String Compression)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3943 访问. 给定一组字符,使用原地算法将其压缩. 压缩后的长度 ...

  2. C#LeetCode刷题之#205-同构字符串(Isomorphic Strings)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3770 访问. 给定两个字符串 s 和 t,判断它们是否是同构的. ...

  3. C#LeetCode刷题之#557-反转字符串中的单词 III(Reverse Words in a String III)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3955 访问. 给定一个字符串,你需要反转字符串中每个单词的字符顺 ...

  4. C#LeetCode刷题之#345-反转字符串中的元音字母​​​​​​​(Reverse Vowels of a String)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3935 访问. 编写一个函数,以字符串作为输入,反转该字符串中的元 ...

  5. LeetCode刷题第8天字符串系列之《378字符串中的第一个唯一字符》

    LeetCode 378字符串中的第一个唯一字符 题目描述 给定一个字符串,找到它的第一个不重复的字符,并返回它的索引.如果不存在,则返回 -1. 提示:你可以假定该字符串只包含小写字母. 示例 输入 ...

  6. 卷进大厂系列之LeetCode刷题笔记:反转链表(简单)

    学算法,刷力扣,加油卷,进大厂! 题目描述 力扣题目链接 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表. 示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3 ...

  7. C#LeetCode刷题之#859-亲密字符串​​​​​​​​​​​​​​(Buddy Strings)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3973 访问. 给定两个由小写字母构成的字符串 A 和 B ,只要 ...

  8. C#LeetCode刷题之#541-反转字符串 II(Reverse String II)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3951 访问. 给定一个字符串和一个整数 k,你需要对从字符串开头 ...

  9. 学渣的刷题之旅 leetcode刷题 7.整数反转

    给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 输入: 123 输出: 321 输入: -123 输出: -321 输入: 120 输出: 21 注意: 假设我们的环境只能存 ...

最新文章

  1. 应用丨AI和机器学习如何改变美国政府决策方式
  2. 新加坡南洋理工 计算机排名6,别踩坑了!这些才是新加坡最好的专业!
  3. Sqrt(int x) leetcode java
  4. 机房收费系统之抽象工厂篇
  5. IOS 通讯录 右侧的字母栏
  6. 0基础改行学python_零基础想转行学习python,该如何学习,有学习路线分享吗?...
  7. python格式化输出 xz_Python——详解__str__, __repr__和__format__
  8. spring react_使用Spring Cloud Gateway保护React式微服务
  9. java调用hbase_Java调用Hbase
  10. SpringBoot2 参数管理实践,入参出参与校验
  11. [bzoj4568][Scoi2016]幸运数字
  12. 前端:JS/38/canvas状态的保存和恢复(canvas常用状态大全),canvas画布中图像的变形
  13. 团部培训笔记-设计模式-《2013-11-27 代理模式》
  14. oracle中decode方法使用
  15. java 链接kafka单机版_kafka单机环境搭建及其基本使用
  16. 跟我学习dubbo-简介(1)
  17. 详解EtherCAT主站SOEM源码_eepromtool.c
  18. 书屋(二):《我的成功可以复制》不妨一读
  19. 会员积分营销系统,现代营销利器
  20. 如何调整c盘分区大小,怎样把c盘空间调整小些

热门文章

  1. Microsoft Visual Studio下编译缺少头文件unistd.h解决办法
  2. 【C++基础学习】二维数组的动态分配及参数传递
  3. DDL 操作表 删除
  4. 显示行号 visual studio 1006
  5. 练习答案-分支与循环-超市买苹果练习-猜数字小游戏
  6. python-发送短信验证码-功能的实现
  7. 描述符演练-02-逻辑疏理-类的装饰器
  8. 浏览器之本地缓存存储 localStorage 和 sessionStorage的区别以及用法
  9. 三元表达式、列表推导式、生成器表达式、递归、内置函数、匿名函数
  10. (一)Rational Rose 2007 下载安装