翻转字符串
发布日期:2021-06-30 19:56:02
浏览次数:2
分类:技术文章
本文共 1750 字,大约阅读时间需要 5 分钟。
比如字符串“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);不能操作字符串。
以下思路参考左程云的书:
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(); }}
=========================Talk is cheap, show me the code=======================
转载地址:https://liuchenyang0515.blog.csdn.net/article/details/82907130 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年04月09日 03时04分50秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
flink physical partition
2019-04-30
java 解析json
2019-04-30
java http请求
2019-04-30
tensorflow 数据格式
2019-04-30
tf rnn layer
2019-04-30
tf input layer
2019-04-30
tf model create
2019-04-30
tf dense layer两种创建方式的对比和numpy实现
2019-04-30
tf initializer
2019-04-30
tf 从RNN到BERT
2019-04-30
tf keras SimpleRNN源码解析
2019-04-30
tf keras Dense源码解析
2019-04-30
tf rnn输入输出的维度和权重的维度
2019-04-30
检验是否服从同一分布
2019-04-30
tf callbacks
2019-04-30
keras、tf、numpy实现logloss对比
2019-04-30
Ubuntu20.04安装微信
2019-04-30
Restful风格的使用
2019-04-30
Swagger基础入门整合SpringBoot
2019-04-30
MyBatisPlus简单入门(SpringBoot)
2019-04-30