新聞中心
筆試題1:將一個(gè)字符串轉(zhuǎn)化成整數(shù):把字符串轉(zhuǎn)換成整數(shù)__牛客網(wǎng)將一個(gè)字符串轉(zhuǎn)化成整數(shù),要求不能使用字符串轉(zhuǎn)化成整數(shù)的庫(kù)函數(shù),數(shù)值為0或者字符串不是一個(gè)合法的數(shù)值那么返回0
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、小程序定制開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶(hù)創(chuàng)新互聯(lián)還提供了南平免費(fèi)建站歡迎大家使用!
輸入描述:輸入一個(gè)字符串,包含數(shù)字字母符號(hào),可以為空
返回值敘述:如果是合法的數(shù)字表達(dá)那么直接返回該數(shù)字,否則返回0
1)輸入:"+2147483647"
輸出:2147483647
2)輸入:"1a33"
輸出:0
3)輸入:"123"
輸出:123
現(xiàn)在我們來(lái)進(jìn)行查看一個(gè)正常情況:1)比如說(shuō)現(xiàn)在有一個(gè)正常的字符串是123,這里面包含了三個(gè)字符,一個(gè)是字符'1',一個(gè)是字符'2',一個(gè)是字符'3'
2)但是我們?cè)贏SCIL碼表中可以看出字符0對(duì)應(yīng)的十進(jìn)制數(shù)是48,字符1對(duì)應(yīng)的十進(jìn)制數(shù)是49,字符2對(duì)應(yīng)的十進(jìn)制數(shù)是50
3)我們?nèi)绻f(shuō)想要把一個(gè)字符串變成整數(shù),那么就需要套一個(gè)公式:sum的初始值是0
sum=sum*10+str[i]-'0'
比如說(shuō)現(xiàn)在有一個(gè)字符串是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;
下面還有一種寫(xiě)法: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; }//如果說(shuō)去掉兩邊的空格之后還是一個(gè)空字符串,那么就直接返回0 //1.我們期望先把整個(gè)字符串變成一個(gè)合法的數(shù)字,例如說(shuō)-123,123之類(lèi)的 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; //特殊判斷第一個(gè)字符 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)二貨小易有一個(gè)W*H的網(wǎng)格盒子,網(wǎng)格的行編號(hào)為0~H-1,網(wǎng)格的列編號(hào)為0~W-1。每個(gè)格子至多可以放一塊蛋糕,任意兩塊蛋糕的歐幾里得距離不能等于2。
這是一個(gè)純數(shù)學(xué)問(wèn)題:
對(duì)于兩個(gè)格子坐標(biāo)(x1,y1),(x2,y2)的歐幾里得距離為:
( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) 的算術(shù)平方根
小易想知道最多可以放多少塊蛋糕在網(wǎng)格盒子里。1)對(duì)于兩個(gè)格子坐標(biāo)(X1,Y1),(X2,Y2)的歐幾里得距離為:
((X1-X2)*(X1-X2)+(Y1-Y2)*(Y1-Y2))的算術(shù)平方根不能等于2
所以說(shuō)(X1-X2)*(X1-X2)+(Y1-Y2)*(Y1-Y2)的平方不能等于4
2)所以說(shuō)我們現(xiàn)在就來(lái)找一下使得(X1-X2)*(X1-X2)+(Y1-Y2)*(Y1-Y2)的所有情況
3)我們可以對(duì)加法表達(dá)式進(jìn)行分解:
1+3=4
3+1=4
2+2=4
0+4=4
4+0=4
所以在這里面我們仔細(xì)地分析了一下,前三個(gè)表達(dá)式是不能夠進(jìn)行存在的
所以說(shuō)要么是(X1-X2)*(X1-X2)=0和(Y1-Y2)*(Y1-Y2)=4
要么是(X1-X2)*(X1-X2)=4和(Y1-Y2)*(Y1-Y2)=0
4)所以說(shuō)最終的結(jié)果就是: X1=X2,Y2=Y1+2
Y1=Y2,X1=X2+2
5)題目要求是任意兩塊蛋糕的歐幾里得的距離不能等于2,那么也就是說(shuō)如果我們?cè)?/p>
array[i][j]位置處存放了蛋糕,那么array[i+2][j]和array[i][j+2]的位置處就不能存放蛋糕了
6)所以說(shuō)在我們進(jìn)行創(chuàng)建數(shù)組的時(shí)候,數(shù)組的默認(rèn)值都是0,那么如果說(shuō)這個(gè)位置開(kāi)始進(jìn)行存放了蛋糕,那么對(duì)應(yīng)位置的array[i+2][j]和array[i][j+2]的位置都不能進(jìn)行存放蛋糕,那么就手動(dòng)置為1;
import java.util.Scanner; // 注意類(lèi)名必須為 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:有效的括號(hào)序列:有效括號(hào)序列_牛客題霸_??途W(wǎng)我們首先要首先要進(jìn)行注意下了:
一:如果說(shuō)要判斷我們的字符串是否合法1)字符串只能由括號(hào)組成
2)進(jìn)行括號(hào)匹配
二:我們?cè)撊绾芜x擇一個(gè)合適的數(shù)據(jù)結(jié)構(gòu)呢?2.1)首先我們要存儲(chǔ)遍歷過(guò)的左括號(hào),我們?cè)谶@里還需要進(jìn)行注意最先遍歷到的左括號(hào)最后被匹配走
2.2)最后遍歷到的左括號(hào)最先被右括號(hào)匹配
2.3)只有當(dāng)我們遍歷完這個(gè)字符串之后,棧里面也恰好沒(méi)有元素了,我們就說(shuō)左右括號(hào)匹配
三:這個(gè)題主要有四種情況1)左右括號(hào)匹配
2)左右括號(hào)不匹配
3)左括號(hào)多
4)右括號(hào)多
import java.util.*; public class Solution { public boolean isValid (String str) { if(str.length()%2==1){ //字符串長(zhǎng)度是奇數(shù),那么說(shuō)明此時(shí)括號(hào)一定不匹配 return false; } Stack
stack=new Stack<>(); for(int i=0;i
筆試題4:斐波那契額數(shù)列Fibonacci數(shù)列_牛客題霸_??途W(wǎng) 思路:1)我們正常輸入了一個(gè)正整數(shù)N,我們想求它比它小的最近的斐波那契額數(shù)列的那個(gè)數(shù)left和比他大的最近的斐波那契額數(shù)列的那一個(gè)數(shù)right
2)返回right-N和N-left的最小值
import java.util.Scanner; // 注意類(lèi)名必須為 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海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
本文題目:筆試訓(xùn)練(6)-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://www.dlmjj.cn/article/didoeo.html