zoukankan      html  css  js  c++  java
  • Leetcode 557.反转字符串中的单词III

    反转字符串中的单词III

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

    示例 1:

    输入: "Let's take LeetCode contest"

    输出: "s'teL ekat edoCteeL tsetnoc" 

    注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。

    实现思路:

    刚看题目心想直接用String.split会不会更容易些,不过这样就失去了这个算法的意义了。还是采用最原始的方法,先遍历循环查找' '字符,分别获取单个单词的左边和右边的位置,此时已基本实现了单词的定位。但是有个问题,就是最后一个单词后面是没有' '这个的,因此里面反转单词的判定除了校验' '之外,还在最后一次循环的时候,依然计算下标,进行单词的反转。

     1 public class Solution {
     2     public String reverseWords(String str) {
     3         char[] buffer = str.toCharArray();
     4         int length = buffer.length;
     5         int left = 0, right = 0;
     6         boolean last;
     7         for (int i = 0; i < length; i++) {
     8             last = i == length - 1;
     9             if (buffer[i] == ' ' || last) {
    10                 left = right;
    11                 right = i - (last ? 0 : 1);
    12                 for (; left < right; left++, right--) {
    13                     char temp = buffer[left];
    14                     buffer[left] = buffer[right];
    15                     buffer[right] = temp;
    16                 }
    17                 right = i + 1;
    18             }
    19         }
    20         return new String(buffer);
    21     }
    22 }
  • 相关阅读:
    Ridis学习笔记
    VMware虚拟机安装教程
    Spring中获取Bean的几种方式
    jQuery中的常用事件
    乱码解决
    自动装配
    通配符用法
    Spring
    Spring mvc简单案例
    jdbctemplate
  • 原文地址:https://www.cnblogs.com/kexinxin/p/10373986.html
Copyright © 2011-2022 走看看