网络科技有限公司 网站建设,固原住房和城乡建设厅网站,小程序模板下载了怎么用,单页面网站教程目录
#x1f525;一、编程题
1.不要二
2.把字符串转换成整数 #x1f525;一、编程题
1.不要二
链接#xff1a;不要二_牛客题霸_牛客网 (nowcoder.com) 描述#xff1a;二货小易有一个W*H的网格盒子#xff0c;网格的行编号为0~H-1#xff0c;网格的列编号为0~W-1…目录
一、编程题
1.不要二
2.把字符串转换成整数 一、编程题
1.不要二
链接不要二_牛客题霸_牛客网 (nowcoder.com) 描述二货小易有一个W*H的网格盒子网格的行编号为0~H-1网格的列编号为0~W-1。每个格子至多可以放一块蛋糕任意两块蛋糕的欧几里得距离不能等于2。 对于两个格子坐标(x1,y1),(x2,y2)的欧几里得距离为: ( (x1-x2) * (x1-x2) (y1-y2) * (y1-y2) ) 的算术平方根 小易想知道最多可以放多少块蛋糕在网格盒子里。 输入描述每组数组包含网格长宽W,H用空格分割.(1 ≤ W、H ≤ 1000) 输出描述输出一个最多可以放的蛋糕数 示例1 输入3 2 输出4 做题思路这里题目有一点问题——网格的行编号为0~W-1网格的列编号为0~H-1 题目要求任意两块蛋糕的欧几里距离不等于2 也就是说如果[i][j]位置放了蛋糕那么[i2][j]和[i][j2]位置就不可以放蛋糕 这里要防止[i2]和[j2]越界 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);int w scanner.nextInt();//行int h scanner.nextInt();//列int count 0;int[][] array new int[w][h];//定义二维数组相当于表格for (int i 0; i w; i) {for (int j 0; j h; j) {if (array[i][j] 0) {//这个框可以放蛋糕count;//计数器1//[i2][j]和[i][j2]位置就不可以放蛋糕,这里要防止[i2]和[j2]越界if (i2 w) {//防越界array[i2][j] 1;}if (j2 h) {//防越界array[i][j2] 1;}}}}System.out.println(count);}
}
2.把字符串转换成整数
链接把字符串转换成整数__牛客网 (nowcoder.com) 将一个字符串转换成一个整数要求不能使用字符串转换整数的库函数。 数值为 0 或者字符串不是一个合法的数值则返回 0 数据范围字符串长度满足 0≤n≤100 进阶空间复杂度 O(1) 时间复杂度 O(n) 注意 ①字符串中可能出现任意符号出现除 /- 以外符号时直接输出 0 ②字符串中可能出现 /- 且仅可能出现在字符串首位。 输入描述:输入一个字符串,包括数字字母符号,可以为空 输出描述:如果是合法的数值表达则返回该数字否则返回0 示例1 输入2147483647 输出2147483647 做题思路 公式sum sum * 10 str[i] - 0 1️⃣如果是纯纯数字则使用公式sum sum * 10 str[i] - 0
2️⃣如果是不合法数值不包括‘’‘-’则返回0
3️⃣如果第一个字符为“”或者“-”那么需要定义一个 flg如果是负号则flg-1如果是正号则flg1 ❗❗❗注意“”或者“-”也是不合法的这时候就需要把“”或者“-”除外如果是“”或者“-”则把第一个字符置为0 但是字符串是不可以修改的将字符串转化为数组来进行编写代码 public int StrToInt(String str) {//转化为数组因为字符串不可以修改char[] ch str.toCharArray();if (ch null || ch.length 0) {//为空return 0;}int flg 1;//首先不管符号用flg来表示正负号乘在最后的结果中if (ch[0] -) {//如果为负取-1flg -1;//如果第一个字符为“-”那么将这个符号置为0不然用影响后边从0下标开始循环判断是否合法因为符号也在0-9之外ch[0] 0;//在这里str.charAt(0) 0;不可取因为字符串不可以修改} else if (ch[0] ) {//如果为正取1flg 1;//同理ch[0] 0;}int sum 0;for (int i 0; i ch.length; i) {if (ch[i] 0 || ch[i] 9) {//不合法直接结束sum 0;//不合法把sum置为0不然就返回不合法之前的数break;}sum sum * 10 ch[i] - 0;}return flg*sum;//最后把符号加上}