字符串----基础训练(三)
2023-03-14 09:45:26 时间
题目一:移除字符串中连续出现的K个0。
代码:
1 /** 2 * 移除字符串中连续出现的k个0 3 * @author xiaow 4 * 5 * 可以用扫描字符数组的解法,但是用正则表达式更为快捷 6 * 7 */ 8 public class RemoveKZeros { 9 10 static String remove_1(String src,int k){ 11 String regex = "0{"+k+"}"; 12 return src.replaceAll(regex, ""); 13 } 14 15 static String remove_2(String src,int k){ 16 char[]arr = src.toCharArray(); 17 int count = 0; 18 StringBuilder sb = new StringBuilder(); 19 for (int i = 0; i < arr.length; i++) { 20 char c = arr[i]; 21 if (c == '0') { 22 count++; 23 }else { 24 for (int j = 0; j < count%k; j++) { 25 sb.append('0'); 26 } 27 sb.append(c); 28 count = 0; 29 } 30 } 31 for (int j = 0; j < count%k; j++) { 32 sb.append('0'); 33 } 34 return sb.toString(); 35 } 36 37 public static void main(String[] args) { 38 System.out.println(remove_1("10000200", 3)); 39 System.out.println(remove_2("10000200", 4)); 40 /* 41 * 输出:10200 42 * 1200 43 */ 44 } 45 46 }
题目二:回文字符串。
代码:
1 public class Palindrome { 2 3 public static void main(String[] args) { 4 System.out.println(isPalindrome("abcba")); 5 } 6 7 static boolean isPalindrome(String src){ 8 if (src.isEmpty()) { 9 return true; 10 } 11 // 翻转后和自己相同---回文字符串 12 return src.equals(new StringBuilder(src).reverse().toString()); 13 } 14 15 }
相关文章
- 微软尝试对Windows 11的任务栏托盘区进行二次现代化改造
- Docker 镜像构建保姆级入门实战指南
- Fedora Linux 的各种版本
- Linux Kernel运行时安全检测之LKRG-原理篇
- 免费开源虚拟机 VirtualBox 6.1.38 发布:初步支持 Linux 内核 6.0
- Linux 系统日志初学者指南
- 小心!六个危险信号表明你可能遭遇NFT骗局和 Rug Pull
- HarmonyOS- 基于ArkUI(eTs)实现猫头鹰动画
- OpenHarmony中的HDF单链表及其迭代器
- 智能家居离线语音识别控制系统设计(SU-03T)
- Micro: 一款比 Vim 更加丝滑的终端文件编辑器
- 用惯 Linux 的人第一次用 Windows 或 macOS 会怎样?
- 如何在 Kubuntu 22.04 中安装 KDE Plasma 5.25
- 这款 Linux 发行版!简单、快速和轻量级
- Linux 与 Windows 双引导操作系统时的十大风险
- Linux Lite 是您需要的简单、快速和轻量级的 Linux 发行版吗?
- apt 的 update 和 upgrade 命令的区别是什么?
- 五款适用于 Linux 的笔记应用
- Golang:“闭包(closure)”到底包了什么?
- Blackbox:极简主义 Linux 用户的美观终端