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

2023-11-02

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

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<Character, Integer> map = new HashMap<Character, Integer>();
	        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<size; i++) {
	            String char2str = String.valueOf(s1.charAt(i)).toUpperCase();//将字母转大写 并将char转字符串
	            num = (int) (map.get(char2str.charAt(0)) * Math.pow(36, size - i - 1) + num);//根据key 取map中对应的value即数字和字母对应的值 然后乘36的n次幂 再相加
	        }

	       /* for(int i=0;i<s.length;i++){
	        	String char2str=String.valueOf(s[i]).toUpperCase();
	        	map.get(char2str.charAt(0) * Math.pow(36,size-i-1));
	        }*/
	       return num;
		
	}
	/** 将十进制转36进制*/
	public static String byteTenTo36(int num) {
        StringBuffer sBuffer = new StringBuffer();
        if(num == 0) {
            sBuffer.append("0");
        }
        while(num > 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<Integer> li=new ArrayList<Integer>();
        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<li.size();x++){//重新新建链表 即反转后的链表
            ListNode rs=new ListNode(li.get(x));
            flag.next=rs;
            flag=rs;
        }
        
        return re;
    }
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • Web 前端开发技术 —— JavaScript

    Web 前端开发技术 JavaScript 总结 JavaScript 内容 文章目录 Web 前端开发技术 JavaScript 一 js 的引用方式与执行顺序 1 引用方式 在标签中直接写 js 代码 复用 js 代码 通过 impor
  • PL/SQL DEVELOPER执行计划的查看 (转)

    字号 订阅 这里 我学到的一个很重要的东西 就是用 PL SQL DEVELOPER去看一条 SELECT语句的执行计划 执行计划里面可以看到这条 SELECT语句的开销 I O操作开销等数值 可以很清晰地看到语句各个部分的执行效率 选中这
  • 电子科技大学操作系统期末复习笔记(二):进程与并发控制

    目录 前言 进程管理 进程基本知识 程序的顺序执行 前趋图 程序的并发执行 并发程序 进程的定义和特征 进程的特征和状态 操作系统内核 定义 功能 原语 原子操作的实现 操作系统控制结构 进程控制块PCB 进程组织 进程树 进程的创建 进程
  • openwrt路由器不断重启问题原因

    重新烧固件之后 openwrt不断重启 df h一看root的空间已满 这说明了原因是flash存储容量不够了 减掉一些不需要的功能重新编译烧固件 或者增加存储来解决吧
  • 解决 docker 容器无法通过 IP 访问宿主机问题

    问题起源 在使用 docker 的过程中我不幸需要在 docker 容器中访问宿主机的 80 端口 而这个 80 端口是另外一个容器 8080 端口映射出去的 当我在容器里通过 docker 的网桥 172 17 0 1 访问宿主机时 居然

随机推荐

  • 如何搭建从DNS服务器

    准备 两台主机 一台主 一台从 1 在从节点 vim etc named rfc1912 zones zone magedu com type slave masters 192 168 37 7 file slaves magedu co
  • m皇后(小白版)

    m皇后 牛客 题目链接 本题 https ac nowcoder com acm problem 15295 八皇后问题 题目链接 NOI http noi openjudge cn ch0205 1700 洛谷 https www luo
  • CSS in JS之styled-components

    代码已经关联到github 链接地址 觉得不错可以顺手点个star 这里会持续分享自己的开发经验 我们都知道 JSX是JS语法的扩展 增加了对HTML语法的支持 那距离all in js就只差一个CSS语法支持了 目前实现该功能的库比较出名
  • vue 使用 Animate.css 实现 联系我们 组件开发

    首先 要清楚 Animate css 是一个 css动画库 为我们封装好了动画效果 我们只需要根据需求选择对应的css写入到div上即可 animate css https animate style fade title 淡入淡出 fad
  • Tensorflow object detection API源码分析之如何构建模型

    模型的具体参数被定义在config文件中 如samples configs ssd mobilenet v2 coco config model ssd num classes 90 box coder faster rcnn box co
  • Obsidian中HTML本地图片无法显示问题

    问题分析 我之前在记笔记的markdown中插入图片时 都是用 img src imgs lw68 png width 15 这样的形式 好处是方便大小和位置的调节 但用Obsidian直接打开原先的markdown文件时 这些图片是无法显
  • 计算机如何执行(运行)程序

    1 1 计算机如何执行 运行 程序 当打开计算机时 主内存 RAM 是空的 计算机要做的第一件事就是将操作系统从硬盘加载到主存 RAM 中 操作系统被加载到主存 RAM 后 可以执行 运行 任何您希望运行的程序 应用程序软件 通常通过点击
  • [948]Pandas数据分组的函数应用(df.apply()、df.agg()、df.transform()、df.applymap()、df.groupby())

    文章目录 apply 数据聚合agg 数据转换transform applymap groupby apply 分组 分组 可迭代对象 其他轴上的分组 通过字典或者Series分组 通过函数分组 分组计算函数方法 多函数计算 agg 将自己
  • vue简单的倒计时组件

    例如想要获取今年的国庆倒计时 2023 10 1 可以先在组件中定义好时间 可以在props中给默认值 方便可以在组件中切换其他时间 默认给今年国庆 vue2语法 props date type String default 2023 10
  • 概率论 - 常见分布(及其分布表)

    分布表在对应的分布下边 离散型的分布 一 0 1分布 二 几何分布 三 二项分布 四 泊松分布 五 超几何分布 连续性的分布 一 均匀分布 二 指数分布 三 正态分布与标准正态分布 格格不入的三个分布 一 卡方分布 二 t 分布 三 F 分
  • RabbitMQ延时消息队列

    1 延时队列介绍 延时队列即放置在该队列里面的消息是不需要立即消费的 而是等待一段时间之后取出消费 那么 为什么需要延迟消费呢 我们来看以下的场景 网上商城下订单后30分钟后没有完成支付 取消订单 如 淘宝 去哪儿网 系统创建了预约之后 需
  • visual studio 2019 sql server localdb 数据库中文乱码解决方法

    今天使用localdb学习asp net core时 发现写入localdb数据库的中文为乱码 按照网上的方法解决 却无法显示 这里只有用sql语句更改了 参考这个 但我试了不成功 用sql语句更改可以 https www cnblogs
  • vue 生成条形码、二维码

    条形码 1 安装 cnpm install jsbarcode save 2 引入 import JsBarcode from jsbarcode 3 二维码容器
  • STM32理论 —— 定时器、时钟

    文章目录 1 定时器 1 1 分类与简介 1 1 1 分类与主要功能特点 1 1 2 三种常用的定时器简介 1 1 3 三种计数模式 1 1 4 定时器计数原理 1 1 5 如何快速定位定时器对应IO 引脚 1 2 时钟来源 1 3 通用定
  • MFC中传递消息的方法

    通过自定义消息实现进程间通信的方法 消息分为两种 即系统消息和用户 程序设计者 自定义消息 系统消息定义从0到0x3FF 可以使用0x400到0x7FFF定义自己的消息 Windows把0x400定义为WM USER 如果想定义自己的一个消
  • YOLOv5改进系列(23)——替换主干网络之MobileViTv2(移动视觉 Transformer 的高效可分离自注意力机制)

    YOLOv5改进系列 前期回顾 YOLOv5改进系列 0 重要性能指标与训练结果评价及分析 YOLOv5改进系列 1 添加SE注意力机制
  • 使用Python,OpenCV沿着轮廓寻找极值点

    使用Python OpenCV沿着轮廓寻找极值点 这篇博客将介绍如何使用Python OpenCV沿着轮廓寻找极值点 找到最北 最南 最东和最西 x y 坐标 虽然这项技能本身并不有用 但它通常被用作更高级计算机视觉应用程序的预处理步骤 这
  • 组态王和plc之间如何建立通讯?

    这两者之间可以有很多种通讯方式 比如 PROFIBUS MPI 以太网 DDE OPC MODBUS 自由口等 主要还是要看你的PLC选型 以及组网方式 现在最常见 也最常用的大概要数RS485 MODBUS协议下的无线通讯方式了 我们假定
  • 中国十大最狠的流氓网站曝光!

    动了流氓软件的发展 谁又从流氓软件中获利 揭开流氓软件背后的始佣者 网易科技独家选出中国十大流氓网站 以下是网易科技评选的十大流氓网站 1 3721 com 中文实名 这个是流氓软件的开山鼻祖 就是因它将中国互联网带入到一个流氓时代 这里就
  • 今日头条2018年校招视频面试过程 一面(编程题两道)

    首先面试官让自我介绍一下 然后问你做过的项目问你擅长的语言 你与其他同学相比的优点 等等 有两道笔试题 1 0 9a z表示36进制 写一个方法计算36进制的和 2 单链表进行反转 附上我写的代码 仅供参考 java代码实现 1 36进制求