LeetCode_初级算法_反转字符串

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 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"]

思路:

第一种:使用C语言中的strrev函数,但是该函数只能对char*类型进行操作,不能作用与string对象.

第二种:使用头文件中的reverse(_BIter, _BIter),函数传入的参数是两个迭代器,分别指向字符串的第一个元素和末尾.

第三种:使用string类中的逆向迭代器 rbegin()和rend().

第四种:使用数组.

第五种:使用栈的特点.

第六种:使用异或.

第七种:递归实现

一看到字符串反转就想直接交换首尾.

class Solution {
public:void reverseString(vector<char>& s) {for(int i=0,j=s.size()-1;i<j;i++,j--) {char c=s[i];s[i]=s[j];s[j]=c;}}
};

用时 8ms.

初级算法_反转字符串相关推荐

  1. 初级算法-12.反转字符串

    题目描述: 编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 char[] 的形式给出. 不要给另外的数组分配额外的空间,你必须原地修改输入数组.使用 O(1) 的额外空间解决这一问 ...

  2. LeetCode_初级算法_数组

    LeetCode|初级算法_数组 题目如下: 1.1 从排序数组中删除重复项 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间 ...

  3. 反转字符串java实现_反转字符串的几种实现(Java)

    反转字符串的几种实现(Java) 首先第一种是利用Java中的类库对象进行反转 //第一种 使用Java类库的diam实现反转 public String reverse(String str){ S ...

  4. swift算法:反转字符串

    1.描述 编写一个函数,其作用是将输入的字符串反转过来,输入字符串以字符数组 char[] 的形式给出. 不要给另外的数组分配额外的空间,你必须原地修改输入数组.使用O(1)的额外空间解决这一问题 你 ...

  5. 算法--------数组------反转字符串中的元音字母

    编写一个函数,以字符串作为输入,反转该字符串中的元音字母.示例 1:输入: "hello" 输出: "holle" 示例 2:输入: "leetcod ...

  6. leetcode算法题--反转字符串

    原文链接:https://leetcode-cn.com/problems/reverse-string/ 双指针法 void reverseString(vector<char>& ...

  7. 初级算法_数组 --- 有效的数独

    1.题目 请你判断一个 9 x 9 的数独是否有效.只需要 根据以下规则 ,验证已经填入的数字是否有效即可: 数字 1-9 在每一行只能出现一次: 数字 1-9 在每一列只能出现一次: 数字 1-9 ...

  8. C++反转字符串的算法(附完整源码)

    C++反转字符串的算法 C++反转字符串的算法完整源码(定义,实现,main函数测试) C++反转字符串的算法完整源码(定义,实现,main函数测试) #include<iostream> ...

  9. 简单记录牛客top101算法题(初级题C语言实现)判断回文字符串 反转字符串 合并两个有序的数组

    1. 判断是否为回文字符串   给定一个长度为 n 的字符串,请编写一个函数判断该字符串是否回文.如果是回文请返回true,否则返回false.   字符串回文指该字符串正序与其逆序逐字符一致. // ...

最新文章

  1. javascript中Math.random()产生随机数总结
  2. centos minimal Bind 主从服务器部署
  3. Node.js npm 详解
  4. autosar架构详细介绍_基于MATLAB环境搭建满足AUTOSAR标准的模型高级培训班
  5. java设计单词英译汉小助手_基于java英汉互译词典设计课程设计.doc
  6. workflow-工作流
  7. java rgb565转rgb888_RGB565 与 RGB888的相互转换 | 学步园
  8. 检测到硬盘错误:在MBR硬盘上没有找到可以引导的分区
  9. Kubernetes 中进行 PVC 的扩容
  10. Java内存模型中的happen-before是什么?
  11. 数据结构——树(树的基本概念)
  12. 金融系统性风险的网络模型
  13. wps纸张大小设置成A4_A4纸是最广泛的打印纸,隐藏了什么秘密?
  14. Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255]
  15. 20201123英语单词学习(仅供自己记录)
  16. Knights of the Round Table
  17. 优秀的网络工程师,需要具备什么?
  18. 2017年工作的总结
  19. python 使用字节流bytes格式读取文件转为int格式,再转为0,1字符串格式
  20. C++ 控制台程序的线程分析

热门文章

  1. html ul css样式,html css ul 美化
  2. django视图(request请求response返回值)
  3. 联发科MTK6735安卓4G全网通智能模块核心板规格书
  4. 外语转录与翻译的音频
  5. 【Java.NIO】Selector,及SelectionKey
  6. IvorySQL亮相于PostgresConf SV 2022 硅谷Postgres大会
  7. 前端传输map集合数据到后台
  8. 插入读卡器时出现存储卡出现目录名称无效,解决方案
  9. Ventuz按钮制作
  10. javaEE Design Patter(1)初步了解23种常用设计模式