当前位置: 首页 > wzjs >正文

江西赣鄂皖路桥投资有限公司网站建设十八大禁用黄app入口

江西赣鄂皖路桥投资有限公司网站建设,十八大禁用黄app入口,网页设计实训报告总结1000字,比较好的网站建设蓝桥杯刷题 Day1 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 蓝桥杯刷题 Day1前言一、大数加法1. 解题思路2. 代码2.1主函数2.2 去除前导02.3 大数相加2.4 完整代码 二、KMP字符串匹配0. 知识点速记1. 解题思路…

蓝桥杯刷题 Day1


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 蓝桥杯刷题 Day1
  • 前言
  • 一、大数加法
    • 1. 解题思路
    • 2. 代码
      • 2.1主函数
      • 2.2 去除前导0
      • 2.3 大数相加
      • 2.4 完整代码
  • 二、KMP字符串匹配
    • 0. 知识点速记
    • 1. 解题思路
    • 2. 代码


前言

今天写牛客网模板题中的字符串模块


一、大数加法

原题地址: 高精度加法

1. 解题思路

  1. 去除前导零:首先需要处理输入的字符串,去掉前导零。例如,输入可能是“00123”,我们需要将其转换为“123”。
  2. 从右向左逐位相加:由于数字非常大,我们不能直接将其转换为整数进行计算。因此,我们将数字按字符逐位处理,从最低位(即字符串的末尾)开始相加。
  3. 处理进位:每一步相加后可能会产生进位,需要将进位传递到下一位的计算中。
  4. 构建结果字符串:将每一位的计算结果拼接到一个字符串中,并在最后反转得到正确的顺序。

2. 代码

2.1主函数

public static void main(String[] args){Scanner scanner = new Scanner(System.in);String A = scanner.next();String B = scanner.next();// 去除前导oA = deleteZeros(A);B = deleteZeros(B);// 两个大数相加String result = addNum(A,B);//输出System.out.println(result);}

2.2 去除前导0

 // 去除前导0,处理全为0的情况public static String deleteZeros(String num){int i = 0;while(i < num.length() && num.charAt(i) == '0'){i++;}if(i == num.length()){return "0";}return num.substring(i);// 提取字符,[i,num末尾)}

2.3 大数相加

 // 大数相加public static String addNum(String A, String B){// StringBuilder修改字符串本身StringBuilder sb = new StringBuilder();// 索引int i = A.length() - 1;int j = B.length() - 1;// 进位int carry = 0;while(i >= 0 || j >= 0 || carry > 0){int sum = carry;if(i >= 0){// -'0' 将字符串转化成整数sum += A.charAt(i) - '0';i--;}if(j >= 0){sum += B.charAt(j) - '0';j--;}// 当前位sb.append(sum % 10);// 10进1carry = sum / 10;}

2.4 完整代码

import java.util.Scanner;public class Main {public static void main(String[] args){Scanner scanner = new Scanner(System.in);String A = scanner.next();String B = scanner.next();// 去除前导oA = deleteZeros(A);B = deleteZeros(B);// 两个大数相加String result = addNum(A,B);//输出System.out.println(result);}// 去除前导0,处理全为0的情况public static String deleteZeros(String num){int i = 0;while(i < num.length() && num.charAt(i) == '0'){i++;}if(i == num.length()){return "0";}return num.substring(i);// 提取字符,[i,num末尾)}// 大数相加public static String addNum(String A, String B){// StringBuilder修改字符串本身StringBuilder sb = new StringBuilder();// 索引int i = A.length() - 1;int j = B.length() - 1;// 进位int carry = 0;while(i >= 0 || j >= 0 || carry > 0){int sum = carry;if(i >= 0){// -'0' 将字符串转化成整数sum += A.charAt(i) - '0';i--;}if(j >= 0){sum += B.charAt(j) - '0';j--;}// 当前位sb.append(sum % 10);// 10进1carry = sum / 10;}// sb.reverse()字符串本身反转,toString()转换为Sring对象(新对象)String result = sb.reverse().toString();return result;}
}

二、KMP字符串匹配

原题地址: KMP字符串匹配

0. 知识点速记

  1. KMP算法:用于匹配字符串,可以智能地跳到某个位置匹配,避免穷举查找
  2. 跳转规则:next数组

1. 解题思路

  1. 去除前导零:首先需要处理输入的字符串,去掉前导零。例如,输入可能是“00123”,我们需要将其转换为“123”。
  2. 从右向左逐位相加:由于数字非常大,我们不能直接将其转换为整数进行计算。因此,我们将数字按字符逐位处理,从最低位(即字符串的末尾)开始相加。
  3. 处理进位:每一步相加后可能会产生进位,需要将进位传递到下一位的计算中。
  4. 构建结果字符串:将每一位的计算结果拼接到一个字符串中,并在最后反转得到正确的顺序。

2. 代码

http://www.dtcms.com/wzjs/100469.html

相关文章:

  • 手机网站 焦点图软文营销的作用
  • 常熟公司做网站拉新推广渠道
  • 网站建设页面底部叫什么百度热搜广告位
  • 晚上睡不着正能量网站深圳百度推广seo公司
  • 重生做网站小说网站制作软件免费下载
  • 什么网站免费做简历全球疫情最新数据统计
  • wordpress 4.9.6中方法seo
  • b2c网站建设方案书seo信息网
  • 网站主页设计优点百度指数网址是多少
  • 网站推广的含义公司网站建设方案
  • 比较好的能组数学卷的网站做教案的百度指数大数据
  • 做企业网站的尺寸是多少识别关键词软件
  • wordpress 显示点击数西安seo站内优化
  • 做英语翻译赚钱的网站免费搜索引擎入口
  • 网站开发与软件开发莱阳seo排名
  • 长春老火车站360建网站
  • 基金会网站建设个人免费建站系统
  • 西安网站开发工资网站服务器一年的费用
  • 做国内电影网站赚钱不长沙网站优化体验
  • nginx wordpress安全成都seo整站
  • 广西南宁网站建设排行榜教师遭网课入侵直播录屏曝光广场舞
  • 自己做网站怎么做seo网络推广技术员招聘
  • 如何建设自己的php网站seo和sem
  • 品牌vi设计的意义做seo是什么意思
  • 有些人做网站不用钱的,对吗?头条搜索站长平台
  • 投票网站设计seo设置是什么
  • 我自己做的网站怎么能查到百度广告联盟收益
  • 鞍山网站设计合肥网站推广助理
  • 做时尚网站取个名字谷歌seo一个月费用需要2万吗
  • 大连建设网信息公开行政审批专栏萧山区seo关键词排名