首页 > 试题广场 >

程序设计(可用任何编程语言实现) 前后颠倒输入的英文中的单

[问答题]
程序设计(可用任何编程语言实现)
前后颠倒输入的英文中的单词位置,标点符号(只可以出现在句尾)位置不变,如输入"Hello how are you!"输出应该为“you are how Hello!"。
    def reverse_sentence(s):
        if not s or s[::-1] == s:
            return s
        return ' '.join([i for i in list(s.split())[::-1]])

发表于 2019-10-28 00:15:32 回复(0)
public class fanzhuan {
    public static void reverse(char[] input,int start,int end){

        char temp=0;
        while(start<end){
            temp=input[start];
            input[start]=input[end];
            input[end]=temp;
            start++;
            end--;
        }
    }

    public static void rotateWord(char[] input){
        int end=input.length-1;
        boolean flag=false;
        if ((input[end]>='a'&&input[end]<='z')||(input[end]>='A'&&input[end]<='Z')){

        }
        else {

            flag=true;
            end--;

        }
        reverse(input,0,end);
        int l=-1;
        int r=-1;
        for (int i=0;i<=end;i++){
            if (input[i]!=' '){
                l=i==0||input[i-1]==' '?i:l;
                r=i==end||input[i+1]==' '?i:r;
            }
            if (l!=-1&&r!=-1){

                reverse(input,l,r);
                l=-1;
                r=-1;
            }
        }



    }

    public static void main(String[] args) {
        String test="hello word!";
        char[] test1=test.toCharArray();
        rotateWord(test1);
        String test2=String.valueOf(test1);
        System.out.println(test2);
    }
}

编辑于 2016-04-18 11:04:32 回复(0)
@Test
	public void test7(){
		String a = "Hello how are you!";
		StringBuffer sb = new StringBuffer();
		char last = a.charAt(a.length()-1);
		//Unicode 编码并不只是为某个字符简单定义了一个编码,而且还将其进行了归类。 
		//这里24表示标点符号这一类型
		if(Character.getType(last)==24){
			a = a.substring(0, a.length()-1);
		}
		String[] splits = a.split("\\s");
		for (int i = splits.length-1; i >= 0; i--) {
			sb.append(splits[i]+(i==0?"":" "));
		}
		sb.append(last);
		System.out.println(sb.toString());
	}
结果:
you are how Hello!

发表于 2016-04-12 18:48:04 回复(0)