189 8069 5689

笔试训练(6)-创新互联

笔试题1:将一个字符串转化成整数:把字符串转换成整数__牛客网

将一个字符串转化成整数,要求不能使用字符串转化成整数的库函数,数值为0或者字符串不是一个合法的数值那么返回0

网站建设哪家好,找成都创新互联!专注于网页设计、网站建设、微信开发、小程序定制开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了南平免费建站欢迎大家使用!

输入描述:输入一个字符串,包含数字字母符号,可以为空

返回值叙述:如果是合法的数字表达那么直接返回该数字,否则返回0

1)输入:"+2147483647"

输出:2147483647

2)输入:"1a33"

输出:0

3)输入:"123"

输出:123

现在我们来进行查看一个正常情况:

1)比如说现在有一个正常的字符串是123,这里面包含了三个字符,一个是字符'1',一个是字符'2',一个是字符'3'

2)但是我们在ASCIL码表中可以看出字符0对应的十进制数是48,字符1对应的十进制数是49,字符2对应的十进制数是50

3)我们如果说想要把一个字符串变成整数,那么就需要套一个公式:sum的初始值是0

sum=sum*10+str[i]-'0'

比如说现在有一个字符串是123

3.1)str[0]='1',sum=0+'1'-'0'=1;

3.2)str[1]='2',sum=1*10+'2'-'0'=12;

3.3)str[2]='3',sum=12*10+'3'-'0'=123;

import java.util.*;
public class Solution {
    public boolean isTrue(char ch){
        if(ch>='0'&&ch<='9'){
            return true;
        }else{
            return false;
        }
    }
    public int StrToInt(String str){
        str=str.trim();//去掉两边的空格
        if(str==null||str.equals("")){
            return 0;
        }//如果说去掉两边的空格之后还是一个空字符串,那么就直接返回0
//1.我们期望先把整个字符串变成一个合法的数字,例如说-123,123之类的        
        StringBuilder sb=new StringBuilder();
        for(int i=0;i
下面还有一种写法:
import java.util.*;
public class Solution {
    public boolean isTrue(char ch){
        if(ch>='0'&&ch<='9'){
            return true;
        }else{
            return false;
        }
    }
    public int StrToInt(String str){
        if(str==null||str.isEmpty()){
            return 0;
        }
        int flag=1;
//特殊判断第一个字符
        if(str.charAt(0)=='+') flag=1;
        if(str.charAt(0)=='-') flag=-1;
        int sum=0;
        for(int i=0;i='0'&&str.charAt(i)<='9'){
               sum=sum*10+str.charAt(i)-'0'; 
            }else{
                if(str.charAt(i)=='+'||str.charAt(i)=='-'){
                    continue;
                }
                sum=0;
                break;
              }
        }
        return flag*sum;
    }
}

 笔试题2:不要2不要二_牛客题霸_牛客网

二货小易有一个W*H的网格盒子,网格的行编号为0~H-1,网格的列编号为0~W-1。每个格子至多可以放一块蛋糕,任意两块蛋糕的欧几里得距离不能等于2。
对于两个格子坐标(x1,y1),(x2,y2)的欧几里得距离为:
( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) 的算术平方根
小易想知道最多可以放多少块蛋糕在网格盒子里。

这是一个纯数学问题:

1)对于两个格子坐标(X1,Y1),(X2,Y2)的欧几里得距离为:

((X1-X2)*(X1-X2)+(Y1-Y2)*(Y1-Y2))的算术平方根不能等于2

所以说(X1-X2)*(X1-X2)+(Y1-Y2)*(Y1-Y2)的平方不能等于4

2)所以说我们现在就来找一下使得(X1-X2)*(X1-X2)+(Y1-Y2)*(Y1-Y2)的所有情况

3)我们可以对加法表达式进行分解:

1+3=4

3+1=4

2+2=4

0+4=4

4+0=4

所以在这里面我们仔细地分析了一下,前三个表达式是不能够进行存在的

所以说要么是(X1-X2)*(X1-X2)=0和(Y1-Y2)*(Y1-Y2)=4

要么是(X1-X2)*(X1-X2)=4和(Y1-Y2)*(Y1-Y2)=0

4)所以说最终的结果就是: X1=X2,Y2=Y1+2

Y1=Y2,X1=X2+2

5)题目要求是任意两块蛋糕的欧几里得的距离不能等于2,那么也就是说如果我们在

array[i][j]位置处存放了蛋糕,那么array[i+2][j]和array[i][j+2]的位置处就不能存放蛋糕了

6)所以说在我们进行创建数组的时候,数组的默认值都是0,那么如果说这个位置开始进行存放了蛋糕,那么对应位置的array[i+2][j]和array[i][j+2]的位置都不能进行存放蛋糕,那么就手动置为1;

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int m=scanner.nextInt();
        int n=scanner.nextInt();
        int[][] array=new int[m][n];
        int count=0;
        for(int i=0;i

笔试题3:有效的括号序列:有效括号序列_牛客题霸_牛客网

我们首先要首先要进行注意下了:

一:如果说要判断我们的字符串是否合法

1)字符串只能由括号组成

2)进行括号匹配

二:我们该如何选择一个合适的数据结构呢?

2.1)首先我们要存储遍历过的左括号,我们在这里还需要进行注意最先遍历到的左括号最后被匹配走

2.2)最后遍历到的左括号最先被右括号匹配

2.3)只有当我们遍历完这个字符串之后,栈里面也恰好没有元素了,我们就说左右括号匹配

三:这个题主要有四种情况

1)左右括号匹配

2)左右括号不匹配

3)左括号多

4)右括号多

import java.util.*;


public class Solution {
    public boolean isValid (String str) {
        if(str.length()%2==1){
            //字符串长度是奇数,那么说明此时括号一定不匹配                  
            return false;
        }
        Stackstack=new Stack<>();
        for(int i=0;i

笔试题4:斐波那契额数列Fibonacci数列_牛客题霸_牛客网 思路:

1)我们正常输入了一个正整数N,我们想求它比它小的最近的斐波那契额数列的那个数left和比他大的最近的斐波那契额数列的那一个数right

2)返回right-N和N-left的最小值

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static int GetMin(int x,int y){
            if(x>y) return y;
            return x;
    }  
    public static void main(String[] args) {
         Scanner scanner=new Scanner(System.in);
         int index=scanner.nextInt();
         int a=0;
         int b=1;
         int c=1;
         while(c

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网页标题:笔试训练(6)-创新互联
地址分享:http://jkwzsj.com/article/didoeo.html