今日头条2018年校招视频面试过程 一面(编程题两道)

首先面试官让自我介绍一下 然后问你做过的项目问你擅长的语言 你与其他同学相比的优点 等等 有两道笔试题:

1,0-9a-z表示36进制 写一个方法计算36进制的和

2,单链表进行反转。

附上我写的代码 仅供参考 java代码实现

1,36进制求和

package com.nice.demo.search;

import java.util.HashMap;

/**
 * @author ljg
 *
 */
public class Demo1 {
	
	 private static final String byte36 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";// 36进制转十进制时使用  字母大写
	 private static final String[] arrBy36 = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z".split(",");//十进制转36进制使用
	
	public static void main(String[] args) {
		System.out.println(byte36ToTen("1b"));
		//System.out.println(byteTenTo36(47));
		//System.out.println(add("1b", "2x"));
	}
	
	
	
	public static String add(String s1,String s2){
		//先转十进制然后相加在转36进制
		int sum=byte36ToTen(s1)+byte36ToTen(s2);
		
		return byteTenTo36(sum);
		
	}
	/** 将36进制转10进制*/
	public static int byte36ToTen(String s1){
		 HashMap map = new HashMap();
	        for (int i = 0; i < byte36.length(); i++) {
	            map.put(byte36.charAt(i), i);
	        }
	        int size = s1.length();
	        
	       char []s=s1.toCharArray();
	        int num = 0;
	        for(int i = 0; i 0) {
            sBuffer.append(arrBy36[num % 36]);//十进制数除36 
            num = num / 36;
        }

        return sBuffer.reverse().toString();//反转一下
    }
	
}

2,单链表反转

package com.nice.demo.search;
import java.util.ArrayList;
import java.util.Collections;
/**
 * 单链表反转
	1 -> 2 -> 3
	3 -> 2 -> 1
 * @author ljg
 *
 */
class ListNode {//单链表 
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}

public class Demo2 {
    public ListNode ReverseList(ListNode head) {
        //健壮性判断
    	if(head==null)
            return null;
        if(head.next==null)
            return head;
        
        ArrayList li=new ArrayList();
        li.add(head.val);
        while(head.next!=null){//用list存储链表的值
            head=head.next;
            li.add(head.val);
        }
        
        Collections.reverse(li);//Collections 反转list集合 没有返回值
        ListNode re=new ListNode(li.get(0)); 
        ListNode flag =null;
        flag=re;
        for(int x=1;x


你可能感兴趣的:(面试)