面试(算法题)

2018-10-23  本文已影响0人  冰与河豚鱼

1.一个字符串,由n个单词组成,每个单词仅由字母组成,每个单词可能有大写和小写,并且单词之间以一个或者空格分割。
现在将字符串中单词间多余的空格删除,即保留一个空格,字符串首尾的空格也删除,并将所有的单词的首字母改成大写,其它字符统一为小写,然后输出到屏幕。

public class TranferString {
    public static void transfer(String s) {
        //以空格为分隔符,将数组中的单词放入列表
        List<String> ss=new ArrayList(Arrays.asList(s.split(" ")));
        ArrayList rs = new ArrayList<String>();
        //迭代
        Iterator<String> it = ss.iterator();
        while(it.hasNext()) {
            String item=it.next();
            if(item.equals("")) {
                it.remove();
                continue;
            }
            //把单词第一个字母大写,其他字母小写
            item = item.toUpperCase().charAt(0)+item.substring(1).toLowerCase();
            rs.add(item);
        }
          //拼接单词
        System.out.println(String.join(" ", rs));
            
    }
    public static void main(String[] args) {
        final String sss="i am   Your BEST     FRiend";
        transfer(sss);
        
    }
}

2.寻找NGE

public class SearchNGE {
    public static void search(int[] arr,int len) {
        Stack<Integer> stack = new Stack<Integer>();
        stack.push(arr[0]);
        int top,next;
        for(int i=1;i<len;i++) {
            next=arr[i];
            top=stack.peek();
            while((!stack.isEmpty())&&top<next) {
                System.out.println(top+","+next);
                stack.pop();
                if(!stack.isEmpty()) {
                    top=stack.peek();
                }
            }
            stack.push(next);
        }
        while(!stack.isEmpty()) {
            top=stack.peek();
            stack.pop();
            System.out.println(top+"-1");
        }
        
    }
public static void main(String[] args) {
    int arr[]= {11,13,28,4,76,0,7};
    int len=arr.length;
    search(arr, len);
}
}
上一篇下一篇

猜你喜欢

热点阅读