首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    算法-反转字符串与反转单词

    题目: 将字符串内容进行倒置,比如 I like beijing. 经过函数后变为:.gnijied ekil I。...解题思路: 首先题目说的很明确,就是反转字符串,不是打印,也不是创建一个新的字符串,而是改变原数据,最简单的思路就是将第一个字符和最后一个交换,第二个和倒数第二个交换,依次循环,函数可以返回一个标志位...即便是使用栈或者递归,时间复杂度上也是一样的,而使用栈的话从后向前打印字符串会方便一些,但是这个题目要求我们改变原数据。...arr[after] = arr[before]^arr[after] ; arr[before] = arr[before]^arr[after]; } } 反转字符串的问题还可以有一些变体...,比如反转一句话中的单词: 题目: 将字符串内容单词进行倒置,比如 I like beijing.

    1.9K80

    字符串反转问题

    首先是我之前写的程序,同时这也是处理第一类的字符串反转问题,也就是输入This is a string., 输出为.gnirts a si sihT: #include #include...字符串反转问题的第二类问题是,对于This is a string,最终反转成string a is This。网上对于这个问题,有说用栈来处理。...我在看到这个要求,想到上面做的反转问题,觉得可以这样来做:首先,将整个字符串都反转,得到gnirts a si sihT,然后在对每个单词进行反转得到最终的结果,string a is This。...;iStart,旋转字符串开始位置;iEnd,旋转字符串结束位置 18 // 输出参数: char*,反转后字符串的指针; 19 // 描 述: 反转iStart到字符串iEnd之间的字符串 20...38 // 输出参数: char*,反转字符串后的指针 39 // 描 述: 按单词反转字符串 40 /*********************************************

    1.4K70

    字符串——344.反转字符串

    1 题目描述 反转字符串 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。...”] 输出:[“h”,“a”,“n”,“n”,“a”,“H”] 3 题目提示 1 <= s.length <= 105 s[i] 都是 ASCII 码表中的可打印字符 4 思路 对于长度为N的待被反转的字符数组...,我们可以观察反转前后下标的变化,假设反转前字符数组为s[o] s[1] s[2] … sLN- 1],那么反转后字符数组为s[N - 1] s[N - 2] …s[o]。...比较反转前后下标变化很容易得出s[i]的字符与s[N - 1 - i]的字符发生了交换的规律,因此我们可以得出如下双指针的解法: 将1eft指向字符数组首元素,right指向字符数组尾元素。...当1eft >= right ,反转结束,返回字符数组即可。 复杂度分析 时间复杂度:O(N)O(N),其中 NN 为字符数组的长度。一共执行了 N/2N/2 次的交换。

    1K30

    『 JS算法-力扣557题』反转字符串中的单词 III

    反转字符串中的单词 III 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。...分析 根据题目的 提示 得知,每个单词由单个空格分格 ,所以我想到上图所示的3大步: 使用 split() 方法把字符串按 空格 进行分格并组成数组 到这步操作的是数组的每个元素,把每个元素的字符串反转一下...分割后的数据结构如下所示 [ "Let's", "take", "LeetCode", "contest" ] 第二步:反转操作(难点) 第二步 是反转数组元素的字符顺序,但数组元素的顺序不反转...但 reverse() 的作用是反转数组元素顺序而不是字符串顺序,所以可以用 第一步 的思路再推演下去,将数组的每项都适用 split() 方法再转换成数组,也就是一个二维数组,结构如下所示 [ [...二维转一维:join('') 。注意没有空格 [  "s'teL",  "ekat",  "edoCteeL",  "tsetnoc" ] 一维转字符串:join(' ') 。

    90010
    领券