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

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

作者: 肚皮怪_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