赞
踩
你在与一位习惯从右往左阅读的朋友发消息,他发出的文字顺序都与正常相反但单词内容正确,为了和他顺利交流你决定写一个转换程序,把他所发的消息 message
转换为正常语序。
注意:输入字符串 message
中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。
示例 1:
输入: message = "the sky is blue
"
输出: "blue is sky the
"
示例 2:
输入: message = " hello world! " 输出: "world! hello" 解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。
示例 3:
输入: message = "a good example" 输出: "example good a" 解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。
提示:
1 <= message.length <= 10^4
message
中包含英文大小写字母、空格和数字message
中至少有一个单词来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
能量流失迅速,心力憔悴,待我缓缓
- /*
- class Solution {
- public void jiaohuan(char[] chr, int first,int last,char[] char1){
- char temp=' ';
- int i=0;
- for(i=first;i<last;i++){
- }
- }
- public String reverseMessage(String message) {
- String str1=message.trim();//去除字符串首尾的空格
- char[] chr=str1.toCharArray();
- //去除字符间的多个空格
- int slow=2,fast=2;
- for(fast=2;fast<str1.length()-2;fast++){
- if(chr[fast-1]==' '|chr[fast+1]==' '){
- continue;
- }
- chr[slow]=chr[fast];
- slow++;
- }
- //进行交换
- int len=slow+2;
- int prevSpaceIndex=-1;
- char[] char1= new char[len];
- for(int i=0;i<len;i++){
- if(chr[i]==' '){
- jiaohuan(chr,prevSpaceIndex+1,i-1,char1);
- prevSpaceIndex=i;
- }
- }
- jiaohuan(chr,prevSpaceIndex+1,len-1);
- }
- }
- */
- class Solution {
- public String reverseMessage(String message) {
- message = message.trim();
- String[] tokens = message.split("\\s+");
- int left = 0, right = tokens.length - 1;
- while(left < right) {
- String temp = tokens[left];
- tokens[left++] = tokens[right];
- tokens[right--] = temp;
- }
- return String.join(" ", tokens);
-
- }
- }
一开始:简单的类型?一看题目好熟悉的套路,易如反掌!
到最后做不下去了,心态有点小崩溃。理想和现实的巨大落差感,一瞬间把我的能量都给抽走
√能够先熟悉string的操作再做题
√能够回忆起先前的答题方法
×题目都不看明白就嘎嘎做(感觉是今天最大的问题)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。