笔试题-句子逆序与字符串逆序

输入  "i love you"    输出"you love i"  

要求:不能使用核心库函数实现逆序。

思路:进行两次反转,第一次每个单词反转,第二次整个字符串反转

    public static void reverseStr(char [] cs,int start,int end)
    {
        char temp='_';
        while(start<end)
        {
            temp=cs[start];
            cs[start]=cs[end];
            cs[end]=temp;
            start++;
            end--;
        }
    }
    
    public static String reverseWords(String str)
    {
        char [] cs=str.toCharArray();
        int start=0,end=0;
        for(int i=0;i<cs.length;i++)
        {
            if(cs[i]==' ')
            {
                reverseStr(cs, start, end-1);
                end++;
                start=end;
            }
            else 
            {
                end++;
                if(i==cs.length-1)
                {
                    reverseStr(cs, start, end-1);
                }
            }
        }
        reverseStr(cs, 0, cs.length-1);
        return new String(cs);
    }

 字符串递归逆序

    private static String recursion ( String input )
    {
        if (input.isEmpty ())
        {
            return input;
        }
        return recursion (input.substring (1)) + input.charAt (0);
    }
 
    public static void main ( String[] args )
    {
        System.out.println (recursion ("12"));
    }

参考:http://blog.csdn.net/sagadean/article/details/7554186

原文地址:https://www.cnblogs.com/maydow/p/4810272.html