zoukankan      html  css  js  c++  java
  • 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字符串,如果遍历到的是字母,就将栈顶字母出栈,加入新字符串中;

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

      

  • 相关阅读:
    python面试题解析(python基础篇80题)
    python面试题
    网络IO模型 主要 IO多路复用
    线程队列 线程池 协程
    线程的Thread模块 同步控制:锁,事件,信号量,条件,定时器
    进程池,线程的理论,Threading.Thread来创建线程
    进程之间的通信(IPC),对列,管道,数据共享.进程池初识
    Process 进程之间的数据隔离问题,守护进程,锁,信号量,事件
    js get the local domain and path fast
    github jekyll blog
  • 原文地址:https://www.cnblogs.com/liang-yi-/p/13587324.html
Copyright © 2011-2022 走看看