• Day 56


    第557题:

    给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。(来自LeetCode)

    1、创建一个新的字符串来存储每次反转的单词;

      从字符串头部开始遍历,当遍历完一个单词(也就是遍历到空格时),将这个单词反转然后放入创建的字符串中,加上空格,接着遍历下一个单词;

      最后得出反串字符串。  

      

    第541题:

    给定一个字符串 s 和一个整数 k,你需要对从字符串开头算起的每隔 2k 个字符的前 k 个字符进行反转。来源:力扣(LeetCode)

    如果剩余字符少于 k 个,则将剩余字符全部反转。
    如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。

    1、循环遍历字符串,每2*k为一段,在这一段内寻找左右两个端点,开头start和end(start+k-1);

      当到最末尾时如果大于end就定为length-1,然后将范围内字符反转,最后得出结果。

      

    第917题:

    给定一个字符串 S,返回 “反转后的” 字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转。(来自LeetCode)

    1、利用双指针分别从左右两端开始遍历,当两者都为字母时交换,当某个指针指向的不为字母则移动;

      这样遍历到最后得出反转结果。

      

    2、或者利用栈将字符串内所以时字母的字符入栈,然后遍历s字符串,如果遍历到的是字母,就将栈顶字母出栈,加入新字符串中;

      如果遍历到的不为字母,就将这个不为字母的元素加入新字符串,因为出栈队列为逆序,所以这样得到的为之反转字母的字符串。

      

  • 相关阅读:
    git 常用命令总结
    Activiti(工作流)如何关联业务表
    常见数据结构复杂度
    linux 启动 oracle数据库
    word2vec 入门(三)模型介绍
    数组中出现次数超过一半的数字 -java
    word2vec 入门(二)使用教程篇
    word2vec 入门基础(一)
    Stackoverflow上人气最旺的10个Java问题(转ImportNew)
    leetcode 326. Power of Three(不用循环或递归)
  • 原文地址:https://www.cnblogs.com/liang-yi-/p/13587324.html
Copyright © 2020-2023  润新知