前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >翻转字符串

翻转字符串

作者头像
砖业洋__
发布2023-05-06 19:12:41
1510
发布2023-05-06 19:12:41
举报
文章被收录于专栏:博客迁移同步

比如字符串“dog loves pig”,翻转成“pig loves dog”

“how are you”翻转成“you are how”

思路是把字符串整体逆序,然后找到每个单词,再把每个单词的字符逆序一遍

可是现在的面试要求就是不能用String,不能用库函数

给定你的就是字符数组char[] c = new char[] {'h', 'o', 'w', ' ', 'a', 'r', 'e', ' ', 'y', 'o', 'u'};

当然要求不能用String s = new String(c);不能操作字符串。

以下思路参考左程云的书:

代码语言:javascript
复制
import java.util.Scanner;

public class Main {
    public static void rotateWord(char[] chas) {
        if (chas == null || chas.length == 0) {
            return;
        }
        reverse(chas, 0, chas.length - 1);
        int l = -1;
        int r = -1;
        int len = chas.length;
        for (int i = 0; i < len; ++i) {
            // 这个字符不为空格,如果前一个为空,则记录l,如果后一个为空,则记录r
            // 若为起始点或者最后,直接记录,主要考虑只有一个单词情况
            if (chas[i] != ' ') {
                l = i == 0 || chas[i - 1] == ' ' ? i : l;
                r = i == len - 1 || chas[i + 1] == ' ' ? i : r;
            }
            if (l != -1 && r != -1) {
                reverse(chas, l, r);
                l = -1;
                r = -1;
            }
        }
    }

    private static void reverse(char[] chas, int start, int end) {
        char temp = 0;
        while (start < end) {
            temp = chas[start];
            chas[start] = chas[end];
            chas[end] = temp;
            ++start;
            --end;
        }
    }

    public static void main(String[] args) {
        Scanner cin = new Scanner(System.in);
        String s = cin.nextLine();
        cin.close();
        char[] c = s.toCharArray();
        // ===================================
        rotateWord(c); // 这里为需要编写的代码
        // ===================================
        for (char cc : c) {
            System.out.print(cc);
        }
        System.out.println();
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-09-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档