zoukankan      html  css  js  c++  java
  • 每日一题 为了工作 2020 0414 第四十三题


    /** * 【题目】 * 给定一个字符类型的数组chas, 请在单词间做逆序调整。只要做到单词顺序逆序即可, * 对空格的位置没有特别要求。 * 【举例】 * 如果把chas看作字符串为 "dog loves pig", 调整成"pig Loves dog"。 * 如果把chas看作字符串为 "I'm a student.", 调整成" student. a I'm"。 * 【解答】 * 首先把chas整体逆序。在逆序之后, 遍历chas找到每一个单词, 然后把每个单词里的 * 字符逆序即可。比如"dog loves pig", 先整体逆序变为"gip sevol god", 然后每个 * 单词进行逆序处理就变成了"pig loves dog"。逆序之后找每一个单词的逻辑, 做到不出 * 错即可。 */

      

    *代码

    public class RotateString {
    
        public char[] rotateString(char chas[]){
            if (chas==null ||chas.length==0){
                return null;
            }
            reverse(chas,0,chas.length-1);
            int left = -1;
            int right = -1;
            for (int i=0;i<chas.length;i++){
                if (chas[i]!=' '){
                    //是不是起始元素 或者当前元素的前一个元素是空
                    left = (i == 0||chas[i-1]==' ')?i:left;
                    //是不是结束元素 或者当前元素的后一个元素为空
                    right = (i == chas.length-1||chas[i+1]==' ')?i:right;
                }
                if (left != -1 && right != -1){
                    reverse(chas,left,right);
                    left=-1;
                    right=-1;
                }
            }
            return chas;
        }
        public void reverse(char chas[],int start,int end){
            char tmp = 0;
            while (start < end){
                tmp = chas[start];
                chas[start]=chas[end];
                chas[end]=tmp;
                start++;
                end--;
            }
        }
    
        public static void main(String[] args) {
            char chas[]={'p','i','g',' ',' ','l','o','v','e'};
            RotateString rs = new RotateString();
            rs.showCharArray(chas);
            rs.rotateString(chas);
            rs.showCharArray(chas);
        }
        public void showCharArray(char chas[]){
            for (char cha :chas){
                System.out.print(cha+"	");
            }
            System.out.println();
        }
    }
    

      

    *运行结果

     

  • 相关阅读:
    [转载]小谈网络游戏同步
    [ASE][Daily Scrum]11.06
    [Proposal]Tank Battle——Infinite
    [proposal][app]Watch your time!
    [Proposal]Nano-Diary(纳日记)
    LaTeX中用BibTex管理参考文献
    matlab化简符号表达式
    placeholder颜色变化
    链接图片外边出现蓝框(IE8/IE9/IE10)
    图标排列
  • 原文地址:https://www.cnblogs.com/walxt/p/12697418.html
Copyright © 2011-2022 走看看