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

算法练习(8):牛客在线编程08 字符串

package jz.bm;import java.util.Arrays;public class bm8 {/*** BM83 字符串变形*/public String trans(String s, int n) {StringBuilder res = new StringBuilder();//大小写转换for (int i = 0; i < n; i++) {if (s.charAt(i) >= 'a' && s.charAt(i) <= 'z') {res.append(Character.toUpperCase(s.charAt(i)));} else if (s.charAt(i) >= 'A' && s.charAt(i) <= 'Z') {res.append(Character.toLowerCase(s.charAt(i)));} else {res.append(s.charAt(i));}}//反转顺序res = res.reverse();//单词顺序转换for (int i = 0; i < n; i++) {if (res.charAt(i) != ' ') {int j = i; //每个单词的起点while (j < n && res.charAt(j) != ' ') {j++;}StringBuilder stringBuilder = new StringBuilder(res.substring(i, j));res.replace(i, j, stringBuilder.reverse().toString());i = j;}}return res.toString();}/*** BM84 最长公共前缀*/public String longestCommonPrefix (String[] strs) {if (strs.length == 0) {return "";}StringBuilder res = new StringBuilder();for (int i = 0; i < strs[0].length(); i++) {char c = strs[0].charAt(i);for (int j = 1; j < strs.length; j++) {if (i >= strs[j].length() || strs[j].charAt(i) != c) {return res.toString();}}res.append(c);}return res.toString();}/*** BM85 验证IP地址*/public String solve (String IP) {if (ipv4(IP)) {return "IPv4";} else if (ipv6(IP)) {return "IPv6";} else {return "Neither";}}private boolean ipv4(String IP) {String[] strings = IP.split("\\.");//防止尾部是.if (strings.length != 4 || IP.endsWith(".")) {return false;}for (int i = 0; i < 4; i++) {if (strings[i].length() == 0) {return false;}for (int j = 0; j < strings[i].length(); j++) {//开头不能为0if (j == 0 && strings[i].charAt(j) == '0') {return false;}//10进制if (strings[i].charAt(j) > '9' || strings[i].charAt(j) < '0') {return false;}}//0-255int num = Integer.parseInt(strings[i]);if (num < 0 || num > 255) {return false;}}return true;}private boolean ipv6(String IP) {String[] strings = IP.split("\\:");//防止尾部是:if (strings.length != 8 || IP.endsWith(":")) {return false;}for (int i = 0; i < 8; i++) {//不为null,没有多余的0if (strings[i].length() == 0 || strings[i].length() > 4 || strings[i].startsWith("00")) {return false;}for (int j = 0; j < strings[i].length(); j++) {//16进制if (!((strings[i].charAt(j) >= '0' && strings[i].charAt(j) <= '9')|| (strings[i].charAt(j) >= 'a' && strings[i].charAt(j) <= 'f')|| (strings[i].charAt(j) >= 'A' && strings[i].charAt(j) <= 'F'))) {return false;}}}return true;}/*** BM86 大数加法*/public String solve (String s, String t) {if (s == null || s.equals("")) {return t;}if (t == null || t.equals("")) {return s;}int i = s.length() - 1, j = t.length() - 1;int carry = 0;StringBuilder res = new StringBuilder();while (i >= 0 || j >= 0) {int a = i < 0 ? 0 : s.charAt(i) - '0';int b = j < 0 ? 0 : t.charAt(j) - '0';res.append((a + b + carry) % 10);carry = (a + b + carry) / 10;i--;j--;}if (carry != 0) {res.append(carry);}return res.reverse().toString();}
}
http://www.lryc.cn/news/132829.html

相关文章:

  • 深入理解分布式架构,构建高效可靠系统的关键
  • 为什么选择elasticsearch分布式搜索引擎
  • 一百五十九、Kettle——Kettle9.2通过配置Hadoop clusters连接Hadoop3.1.3(踩坑亲测、附流程截图)
  • 渗透测试之逻辑漏洞
  • HTML class 中 CSS名称的顺序并不重要
  • 设计模式8:代理模式-静态代理
  • 运动耳机哪款好用、适合运动的耳机推荐
  • 页面滑动到可视区域加载更多内容思维流程
  • Java Word转PDF(直接转和以图片形式转)、PDF转图片、图片转PDF
  • dockerfile编写LNMP
  • websocket + stomp + sockjs学习
  • ApplicationListener , @EventListener 和 CommandLineRunner 启动顺序验证
  • 网络编程基础(1)
  • Linux驱动开发(Day4)
  • LVS负载均衡群集部署(LVS-NAT模型实例)
  • 【仿写tomcat】五、响应静态资源(访问html页面)、路由支持以及多线程改进
  • stm32单片机/51单片机蜂鸣器不响(proteus模拟)
  • BERT、ERNIE、Grover、XLNet、GPT、MASS、UniLM、ELECTRA、RoBERTa、T5、C4
  • 主机防护的重要性和方式
  • 聚观早报 | 抢先体验阿维塔11座舱;本田和讴歌采用NACS充电标准
  • 思科计算机网络答案(包含第1~11章节)
  • 所见即所得,「Paraverse平行云」助力万间打造智能建造新图景
  • AI图片处理功能演示
  • CentOS系统环境搭建(六)——使用docker-compose安装redis
  • 个人论坛项目测试报告
  • 一起来学shiny把(4)—调控控件进行输出
  • VBIC卡管理系统设计与实现
  • 八种架构演进
  • 商城-学习整理-高级-分布式事务(十九)
  • Java学习笔记(三):面向对象