美文网首页
记阿里算法面试题——把一个字符串倒置,并保持其中每个单词顺序不变

记阿里算法面试题——把一个字符串倒置,并保持其中每个单词顺序不变

作者: 肚皮怪_Sun | 来源:发表于2020-04-02 11:03 被阅读0次

    前几天接到阿里的面试机会,先是经历了两轮电话面试,聊了很多先是考察基础再接着是很多关于项目方面的内容。第二轮面试是午休的时段,一直聊到两点多,因为下午还要上班,不得不先到到这。挂电话的时候面试官问我什么时候有时间——在线测代码。我一听心想这是考算法题,这块一直都是我的弱项,不会就要挂这吧,然后我直接把时间约在当天晚上。

    
    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();
        }
    }
    

    相关文章

      网友评论

          本文标题:记阿里算法面试题——把一个字符串倒置,并保持其中每个单词顺序不变

          本文链接:https://www.haomeiwen.com/subject/rogtphtx.html