博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面试题编程题整理(更新中)
阅读量:6257 次
发布时间:2019-06-22

本文共 3904 字,大约阅读时间需要 13 分钟。

博主说两句,博主大三在校生,最近面试积累了很多的题目,于是准备整理一下 尽管可能不是最优解
注: 以下所有的代码均 通过了牛客网的测试 
[编程题01] 整数反转

时间限制:1秒

空间限制:131072K

输入一个有符号整数,输出该整数的反转值。
输入描述:
一个整数
输出描述:
一个整数
输入例子1:
123
输出例子1:
321
输入例子2:
-123
输出例子2:
-321
输入例子3:
200
输出例子3:
2 方法一
public static int reverse2(int x) {		//x 小于0 则返回 -x 否则返回 x		int tmp = x < 0?-x:x;		//给一个变量 用来存结果		long reverse=0;		//结束条件是 输入的数已经是最后一个		while (tmp>0) {			//每次reverse的数往高位移动一位  tmp每次取模拿到最后一位			reverse=reverse*10 + tmp%10;			if(reverse>Integer.MAX_VALUE) {				return 0;			}			//然后tmp每次往低位一位			tmp=tmp/10;		}		//最后判断输入时的符号来给出最终的符号		return (int)(x < 0? -reverse:reverse);	}  
方法二
import java.util.Scanner;/**  * 字符串进行处理 * method two * @author shundong * */public class Mian {	public static void main(String[] args) {		Scanner in = new Scanner(System.in);	      //System.err.println("请输入一个需要反转的整数");		long inStr = in.nextInt();		if (inStr<10&inStr>-10) {			System.out.println(inStr);			return;		}		String tmp = inStr <0? -inStr+"":inStr+"";//int 转STRING 且必正		if (inStr<0) {			System.out.print("-");		}		for(int i = tmp.length()-1;i>=0;i--) {			if(tmp.charAt(i)-48!=0) {				System.out.print(tmp.charAt(i));			}		}	}}
[编程题02] 计算 1+2-3+4-5+6-7+8-9...+n 输入n 输出结果
package com.shundongAlgorithmProblem;import java.util.Scanner;/** * 计算 1+2-3+4-5+6-7+8-9+...+n * @author shundong * */public class Code_02 {	public static void main(String[] args) {		Scanner in = new Scanner(System.in);		//System.out.println("请输入要计算的n");		int tmp = in.nextInt();		long sum = 1;		for(int i = 2;i<=tmp;i++) {			if (i%2==0) {				sum += i;			}			else {				sum += -i;			}		}		System.out.println(sum);	}}

  

[编程题03] 写一个简单的单例模式类
package com.shundong.AlgorithmProblem;/** * java写一个简单的单例类 * @author shundong * */class Singleton {	//使用一个类变量来缓存曾经创建的实例	private static Singleton instance;	//对构造进行隐藏(private)	private Singleton(){}	/**	 * 提供一个静态方法 	 * 该方法加入了自定义控制 保证只产生一个Singleton对象	 * @return 返回Singleton 实例	 */	public static Singleton getInstance()	{		/**		 * 如果instance为null,表示还不曾创建Singleton对象 		 * 如果instance不为null,表示已经创建Singleton对象 		 */		if(instance==null) {			//创建Singleton对象 并将其缓存			instance = new Singleton();		}		return instance;	}}	//for test	public class SingletonTest	{		public static void main(String[] args) 		{			//创建实例不能通过构造!!!			//必须通过getInstance !!!单例 o了			Singleton aSingleton1 = Singleton.getInstance();			Singleton aSingleton2 = Singleton.getInstance();			System.out.println(aSingleton1==aSingleton2);		}	}

  [编程题04] 写一个二进制转十进制的转换器(切记注意越界以及非法符号问题)

 
package com.shundong.stackAndQueue;import java.util.Deque;import java.util.LinkedList;import java.util.Scanner;import java.util.regex.Pattern;/** * 二进制转换器(栈)  * @author shundong * */public class BinaryConversion {	private static String inConversion ;//输入的进制数	private static Deque
deque = new LinkedList
(); public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("请输入你需要转换的数字:"); Scanner in = new Scanner(System.in); inConversion = in.nextLine();//拿到键盘 要转换的 if(isInteger(inConversion)) { if(!isInt(inConversion)) { System.out.println("输入的数字越界了!"); }else { decimalToBinary(Integer.parseInt(inConversion)); } }else { System.err.println("请输入一个数字"); }// decimalToBinary(inConversion); } /** * 判断被转换的对象 是否为数字 * @param str * @return */ public static boolean isInteger(String str) { Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$"); return pattern.matcher(str).matches(); } /** * 越界判断 */ public static boolean isInt(String val) { try { Integer.parseInt(val); return true; } catch (NumberFormatException e) { return false; } } /** * 十进制转二进制 * @param val * @return */ public static void decimalToBinary(int val) { do { int mod = val % 2; deque.push(mod); val = val /2 ; }while(val>0); for (Integer integer : deque) { System.out.print(integer); } }}
 

  

 
  

转载于:https://www.cnblogs.com/shundong106/p/9880321.html

你可能感兴趣的文章
[Preact] Integrate react-router with Preact
查看>>
函数指针的说明
查看>>
Python操作redis学习系列之(集合)set,redis set详解 (六)
查看>>
Linux时间子系统之二:表示时间的单位和结构
查看>>
leetcode 221: Maximal Square
查看>>
Oracle更新时间字段
查看>>
Android 四大组件学习之ContentProvider二
查看>>
使用jcaptcha插件生成验证码
查看>>
centos6.5 (linux) 禁用模块 IPV6模块的方法
查看>>
用webpack2.0构建vue2.0超详细精简版
查看>>
从分类,排序,top-k多个方面对推荐算法稳定性的评价
查看>>
006_ssl监测及评分
查看>>
ES6中的模块
查看>>
ubuntu16.04 登录密码破解方法
查看>>
Retrofit2.0+OkHttp打印Request URL(请求地址参数)
查看>>
19-hadoop-fof好友推荐
查看>>
自己定义View学习之12/7(进度条之混合模式)
查看>>
Android零基础入门第5节:善用ADT Bundle,轻松邂逅女神
查看>>
momentum公式
查看>>
Git合并最近的commit
查看>>