前几天接到阿里的面试机会,先是经历了两轮电话面试,聊了很多先是考察基础再接着是很多关于项目方面的内容。第二轮面试是午休的时段,一直聊到两点多,因为下午还要上班,不得不先到到这。挂电话的时候面试官问我什么时候有时间——在线测代码。我一听心想这是考算法题,这块一直都是我的弱项,不会就要挂这吧,然后我直接把时间约在当天晚上。
public class Revese {
public static void main(String[]args){
System.out.println(revese("I am a student."));
}
public static String revese(String s){
int length=s.length();
char[] str=s.toCharArray();
StringBuffer strs= new StringBuffer();
Stack<Character> stack=new Stack();
for(char ch:str){
stack.push(ch);//入栈
}
Stack<Character> stackTemp=new Stack();
for(int i=0; i<length;i++){
if(stack.isEmpty())
break;
char ch= stack.pop();
if(ch!=' '){
stackTemp.push(ch);
if(!stack.isEmpty())
continue;
}
if(!stackTemp.isEmpty()){//反转
while(!stackTemp.isEmpty()){
char char_= stackTemp.pop();
strs.append(char_);
}
}
if(ch==' '){
strs.append(ch);
}
}
return strs.toString();
}
}