面试(算法题)
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);
}
}