筆試訓(xùn)練(6)-創(chuàng)新互聯(lián)

筆試題1:將一個字符串轉(zhuǎn)化成整數(shù):把字符串轉(zhuǎn)換成整數(shù)__??途W(wǎng)

將一個字符串轉(zhuǎn)化成整數(shù),要求不能使用字符串轉(zhuǎn)化成整數(shù)的庫函數(shù),數(shù)值為0或者字符串不是一個合法的數(shù)值那么返回0

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、小程序定制開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了南平免費建站歡迎大家使用!

輸入描述:輸入一個字符串,包含數(shù)字字母符號,可以為空

返回值敘述:如果是合法的數(shù)字表達那么直接返回該數(shù)字,否則返回0

1)輸入:"+2147483647"

輸出:2147483647

2)輸入:"1a33"

輸出:0

3)輸入:"123"

輸出:123

現(xiàn)在我們來進行查看一個正常情況:

1)比如說現(xiàn)在有一個正常的字符串是123,這里面包含了三個字符,一個是字符'1',一個是字符'2',一個是字符'3'

2)但是我們在ASCIL碼表中可以看出字符0對應(yīng)的十進制數(shù)是48,字符1對應(yīng)的十進制數(shù)是49,字符2對應(yīng)的十進制數(shù)是50

3)我們?nèi)绻f想要把一個字符串變成整數(shù),那么就需要套一個公式:sum的初始值是0

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

比如說現(xiàn)在有一個字符串是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.我們期望先把整個字符串變成一個合法的數(shù)字,例如說-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ǎng)

二貨小易有一個W*H的網(wǎng)格盒子,網(wǎng)格的行編號為0~H-1,網(wǎng)格的列編號為0~W-1。每個格子至多可以放一塊蛋糕,任意兩塊蛋糕的歐幾里得距離不能等于2。
對于兩個格子坐標(biāo)(x1,y1),(x2,y2)的歐幾里得距離為:
( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) 的算術(shù)平方根
小易想知道最多可以放多少塊蛋糕在網(wǎng)格盒子里。

這是一個純數(shù)學(xué)問題:

1)對于兩個格子坐標(biāo)(X1,Y1),(X2,Y2)的歐幾里得距離為:

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

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

2)所以說我們現(xiàn)在就來找一下使得(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)所以說最終的結(jié)果就是: X1=X2,Y2=Y1+2

Y1=Y2,X1=X2+2

5)題目要求是任意兩塊蛋糕的歐幾里得的距離不能等于2,那么也就是說如果我們在

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

6)所以說在我們進行創(chuàng)建數(shù)組的時候,數(shù)組的默認(rèn)值都是0,那么如果說這個位置開始進行存放了蛋糕,那么對應(yīng)位置的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:有效的括號序列:有效括號序列_??皖}霸_??途W(wǎng)

我們首先要首先要進行注意下了:

一:如果說要判斷我們的字符串是否合法

1)字符串只能由括號組成

2)進行括號匹配

二:我們該如何選擇一個合適的數(shù)據(jù)結(jié)構(gòu)呢?

2.1)首先我們要存儲遍歷過的左括號,我們在這里還需要進行注意最先遍歷到的左括號最后被匹配走

2.2)最后遍歷到的左括號最先被右括號匹配

2.3)只有當(dāng)我們遍歷完這個字符串之后,棧里面也恰好沒有元素了,我們就說左右括號匹配

三:這個題主要有四種情況

1)左右括號匹配

2)左右括號不匹配

3)左括號多

4)右括號多

import java.util.*;


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

筆試題4:斐波那契額數(shù)列Fibonacci數(shù)列_??皖}霸_??途W(wǎng) 思路:

1)我們正常輸入了一個正整數(shù)N,我們想求它比它小的最近的斐波那契額數(shù)列的那個數(shù)left和比他大的最近的斐波那契額數(shù)列的那一個數(shù)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

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

分享題目:筆試訓(xùn)練(6)-創(chuàng)新互聯(lián)
鏈接地址:http://bm7419.com/article40/didoeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化網(wǎng)頁設(shè)計公司、網(wǎng)站內(nèi)鏈品牌網(wǎng)站建設(shè)、手機網(wǎng)站建設(shè)品牌網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)