java 字符串单词交换 hello world world hello

看到同事出去的面试题,将“hello world” 转换成 “ world hello"还要考虑空间复杂度

然后就随便写写,主要是c思路,用c语言估计可以更简洁,也不知道是不是面试官想要的答案

String s = "hello world 123 321";

Field f = s.getClass().getDeclaredField("value");

f.setAccessible(true);

char[] chrs = (char[]) f.get(s);

char temp;

for (int i = 0; i < chrs.length / 2; i++) {

          temp = chrs[i];

          chrs[i] = chrs[chrs.length - i - 1];

          chrs[chrs.length - i - 1] = temp;

}

System.out.println(s);

int lastIndex = 0;

for (int i = 0; i < chrs.length; i++) {

         if (chrs[i] == ' ' || i == chrs.length - 1) {

                     if (i == chrs.length - 1)

                     i = i + 1;

                     for (int j = lastIndex; j < lastIndex + (i - lastIndex) / 2; j++) {

                                temp = chrs[j];

                                chrs[j] = chrs[i - j - 1 + lastIndex];

                                 chrs[i - j - 1 + lastIndex] = temp;

                        }

              lastIndex = i + 1;

            }

}

System.out.println(s);

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 不知道从什么时候开始,择一人白首,选一城终老,成为好多人关于爱情的愿望。也不记得在多久之前,我读完钱锺书先生的大作...
    可乐宝宝阅读 389评论 4 4
  • 穿黑色雨伞的人 地上蓄谋己久的水 淹没他的小腿淹过他的大腿 淹过他的腹部淹过他的胸围 淹过他的头发 ...
    雪山孟龙阅读 180评论 0 0