中国移动杭州研究院测试工程师的程序题,这道题比较简单,对于我们这种小白再适合不过啦,于是我们三个一个人用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; }