字符串逆序

中国移动杭州研究院测试工程师的程序题,这道题比较简单,对于我们这种小白再适合不过啦,于是我们三个一个人用C++写的,一个人用JAVA写的,我用PYTHON写的,嘿嘿当然还是由借助,真希望自己可以到不需要‘借助’的那一天,虽然很遥远,但是每天进步一点点嘛。好了,不废话了,原题是给你一个字符串,让你将这个字符串逆序,但是要保持每个单词还是正序的,例如:‘this is a test’将转换成‘test a is this’

PYTHON:(因为python有很多自己的函数以及split方法,于是代码很简单)

1 import re
2 astring = raw_input()
3 revwords = ' '.reversed(astring.split())
4 print(revwords)

JAVA:

 1 package com.ligen.main;
 2 
 3 import java.util.Scanner;
 4 import java.util.Stack;
 5 import java.util.regex.Pattern;
 6 
 7 public class test08 {
 8     public static void main(String args[]){
 9         Scanner sc = new Scanner(System.in);
10         String testStr  = sc.nextLine();
11         Pattern pattern = Pattern.compile("[, .]+");
12         String[] ss = pattern.split(testStr);
13         getReverse(ss);
14     }
15     
16     public static void getReverse(String[] str){
17         for(int i = str.length-1;i>=0;i--){
18             System.out.print(str[i]+" ");
19         }
20     }
21     }
22 }

C++:(C++就是将各个字符串中的单词入栈再出栈)

#include<iostream>
#include<stack>
#include<string>

using namespace std;

void main()
{
    stack<string> sta;
    string s;
    while(cin>>s)
    {
        if(s.empty())
            break;
        sta.push(s);
    }
    //cout<<s<<" ";
    while(!sta.empty())
    {
        cout<<sta.top()<<" ";
        sta.pop();
    }
}

用字符串流

    string reverseWords(string &s) {
        stringstream ss(s);
        string ret="",tmp="";
        while(ss>>tmp)
        {
            if(ret == "") ret = tmp;
            else ret=tmp + " " + ret;
        }
        return ret;
    }
原文地址:https://www.cnblogs.com/LUO77/p/4890053.html