首页 > 其他分享 >【华为OJ13】句子逆序

【华为OJ13】句子逆序

时间:2022-11-22 12:38:51浏览次数:45  
标签:begin end String strChar 指针 华为 str OJ13 逆序


题目描述


将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”

所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符

import java.util.Scanner;

public class Main{
public static String ReverseString(String str){
if(str==null ||str.length()<=0)
return null;
char[] strChar=str.toCharArray();
//1 先反转整个句子:yob a ma I
Reverse(strChar,0,strChar.length-1);

//2 再对每一段进行反转:双指针思想,当i指针碰到空格的时候,就反转从j指针到i指针-1段的字符串
// 反转后,j指针指向i+1(期空格前一个字符)当做下次反转的起点,而i指针继续右移,
// 直到碰到空格
int j=0;
for(int i=0;i<strChar.length;i++){
if(strChar[i]==' ' || i==strChar.length-1){
//如果到了字符串结尾,这时没有空格了,要单独判断一下
if(i==strChar.length-1){
Reverse(strChar,j,i);
return String.valueOf(strChar);
}
Reverse(strChar,j,i-1);
j=i+1;
}
}
return String.valueOf(strChar);
}

public static void Reverse(char[] strChar,int begin,int end ){
while(begin < end){
char temp=strChar[begin];
strChar[begin]=strChar[end];
strChar[end]=temp;
begin++;
end--;
}
}

public static void main(String[] args){
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
String str=sc.nextLine();
System.out.print(ReverseString(str));
}
sc.close();
}


}



标签:begin,end,String,strChar,指针,华为,str,OJ13,逆序
From: https://blog.51cto.com/u_15886477/5877671

相关文章

  • 【华为OJ14】句子逆序
    题目描述给定n个字符串,请对n个字符串按照字典序排列。输入描述:输入第一行为一个正整数n(1≤n≤1000),下面n行为n个字符串(字符串长度≤100),字符串中只含有大小写字母......
  • 【华为OJ12】字符串反转
    题目描述写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。例如:importjava.util.Scanner;publicclassMain{publicstaticStringreverseStr(String......
  • 【华为OJ9】提取不重复的整数
    题目描述输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。输入描述:输入一个int型整数输出描述:按照从右向左的阅读顺序,返回一个不含重......
  • 【华为OJ8】合并表记录
    题目描述数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。输入描述:先输入键值对的个数然后输......
  • 【华为OJ7】取近似值
    题目描述写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整。importjava.util.Scanner;publicclassMain......
  • 【华为OJ5】进制转换
    题目描述写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )输入描述:输入一个十六进制的数值字符串。输出描述:输出该数值的......
  • 【华为OJ18】识别有效的IP地址和掩码并进行分类统计
    题目描述请解析IP地址和对应的掩码,进行分类识别。要求按照A/B/C/D/E类地址归类,不合法的地址和掩码单独归类。所有的IP地址划分为 A,B,C,D,E五类A类地址1.0.0.0~126.25......
  • 【华为OJ23】删除字符串中出现次数最少的字符
    题目描述实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。输入描述:字符串只包含......
  • 【数组10】数组中的逆序对
    题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果......
  • golang算法-链表逆序
    前言链表逆序,表述的场景为:A->B->C->D逆序后:D->C>B>A分析需要插入数据,Insert方法需要打印数据,Print方法插入数据时,需要定位最后一个节点,LastNode方法最少需要两个偏移量......