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

代码随想录算法训练营Day7

344.反转字符串

力扣题目链接:. - 力扣(LeetCode)

双指针

class Solution {
    public void reverseString(char[] s) {
       int leftindex=0;
       int rightindex=s.length-1;
       while(leftindex<rightindex){
        char temp=s[leftindex];
        s[leftindex]=s[rightindex];
        s[rightindex]=temp;
        leftindex++;
        rightindex--;
       }
    }
}

541. 反转字符串II

力扣题目链接:. - 力扣(LeetCode)

双指针

class Solution {
    public String reverseStr(String s, int k) {
        char[] sarray=s.toCharArray();
        for(int i=0;i<sarray.length;i+=2*k){
            int start=i;
            int end=Math.min(sarray.length-1,i+k-1);
            while(start<end){
                char temp=sarray[start];
                sarray[start]=sarray[end];
                sarray[end]=temp;
                start++;
                end--;
            }
        }
        return new String(sarray);
    }
}

卡码网:54.替换数字

卡码题目链接:54. 替换数字(第八期模拟笔试)

import java.util.Scanner;

public class Main {
    
    public static String replaceNumber(String s) {
        int count = 0; // 统计数字的个数
        int sOldSize = s.length();
        for (int i = 0; i < s.length(); i++) {
            if(Character.isDigit(s.charAt(i))){
                count++;
            }
        }
        // 扩充字符串s的大小,也就是每个空格替换成"number"之后的大小
        char[] newS = new char[s.length() + count * 5];
        int sNewSize = newS.length;
        // 将旧字符串的内容填入新数组
        System.arraycopy(s.toCharArray(), 0, newS, 0, sOldSize);
        // 从后先前将空格替换为"number"
        for (int i = sNewSize - 1, j = sOldSize - 1; j < i; j--, i--) {
            if (!Character.isDigit(newS[j])) {
                newS[i] = newS[j];
            } else {
                newS[i] = 'r';
                newS[i - 1] = 'e';
                newS[i - 2] = 'b';
                newS[i - 3] = 'm';
                newS[i - 4] = 'u';
                newS[i - 5] = 'n';
                i -= 5;
            }
        }
        return new String(newS);
    };
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String s = scanner.next();
        System.out.println(replaceNumber(s));
        scanner.close();
    }
}

http://www.kler.cn/a/313574.html

相关文章:

  • ubuntu ros 解决建完图后 保存的地图非常小的问题
  • Hadoop(环境搭建篇)
  • C#程序开发,检测当前电脑已经安装的软件目录
  • arkUI:遍历数据数组动态渲染(forEach)
  • JavaEE进阶----SpringMVC(三)---响应的获取
  • 生成 Django 中文文档 PDF 版
  • 基于MySQL全量备份+GTID同步的主从架构恢复数据至指定时间点
  • Linux--禁止root用户通过ssh直接登录
  • Java项目实战II基于Java+Spring Boot+MySQL的网上租贸系统设计与实现(开发文档+源码+数据库)
  • 情感AI:科技赋能情感计算的新时代
  • SpringBoot:token是用来鉴权的,那session的作用是什么?
  • 笔记:将WPF中可视化元素(Visual)保存为图像,如PNG,JPEG或BMP的方法简介
  • 设计模式七大原则
  • 毕业设计选题:基于ssm+vue+uniapp的农产品自主供销小程序
  • 与转录组结合,开发下一代诊断技术,或许是医学AI领域的下一个热点|个人观点·24-09-21
  • 中国电子学会202303青少年软件编程(Python)等级考试试卷(四级)真题
  • pandas入门
  • mongoDB-1
  • 深入探索Docker核心原理:从Libcontainer到runC的演化与实现
  • html的基本语法
  • QTPropertyBrowser属性表控件:新增自定义属性类型
  • JDK1.8的新特性
  • Python语言基础教程(下)4.0
  • 面试时遇见的项目问题
  • 数据链路层/ARP协议
  • Kettle的安装及简单使用