首页 > 其他分享 >Day07 字符串part01| LeetCode 344. 反转字符串,541. 反转字符串II,卡码网:54.替换数字

Day07 字符串part01| LeetCode 344. 反转字符串,541. 反转字符串II,卡码网:54.替换数字

时间:2024-09-08 19:13:41浏览次数:13  
标签:卡码 ch String int 反转 lens 字符串 public

反转字符串

344. 反转字符串

 class Solution {
        public void reverseString(char[] s) {
            int lens=s.length;
            int right,left;
            if(lens%2!=0)//奇数个
            {
                right=lens/2+1;
                left=lens/2-1;
            }
            else
            {
                right=lens/2;
                left=lens/2-1;
            }
            int i=0,j=lens-1;
            while(i<=left&&j<=lens-1)
            {
                char temp=s[i];
                s[i]=s[j];
                s[j]=temp;
                i++;
                j--;
            }

        }
    }

反转字符串II

541. 反转字符串 II

 class Solution {
        public String reverseStr(String s, int k) {
                int len=s.length();
                char[] c=s.toCharArray();
                for(int i=0;i<len;i+=2*k)
                {
                    if(i+k<=s.length())
                    {
                        reverse(c,i,i+k-1);
                    }
                    else
                    {
                        reverse(c,i,len-1);
                    }
                }
                return new String(c);
        }
        public void reverse(char[] c,int i,int j)
        {
            for(;i<j;i++,j--)
            {
                char temp=c[i];
                c[i]=c[j];
                c[j]=temp;

            }
        }
    }
  

卡码网:54.替换数字

使用额外的空间

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        String result="";
        Scanner scanner=new Scanner(System.in);
        String s=scanner.next();

        char[] ch=s.toCharArray();
        for(int i=0;i<s.length();i++)
        {
            if(ch[i]>='a'&& ch[i]<='z')
            {
                result+=ch[i];
            }
            else
            {
                result+="number";
            }
        }
        System.out.println(result);
    }
}

不使用额外的数组空间

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String s = scanner.next();
        char[] ch = s.toCharArray();
        int count = 0;
        int OldIndex = ch.length - 1;
        
        // 统计数字字符的数量
        for (int i = 0; i < ch.length; i++) {
            if (ch[i] >= '0' && ch[i] <= '9') {
                count++;
            }
        }

        // 扩容
        char[] newS = new char[s.length() + count * 5];

        // 已扩容的下标
        int NewIndex = newS.length - 1;
        
        while (OldIndex >= 0) {
            if (ch[OldIndex] >= '0' && ch[OldIndex] <= '9') {
                newS[NewIndex--] = 'r';
                newS[NewIndex--] = 'e';
                newS[NewIndex--] = 'b';
                newS[NewIndex--] = 'm';
                newS[NewIndex--] = 'u';
                newS[NewIndex--] = 'n';
            } else {
                newS[NewIndex--] = ch[OldIndex];
            }
            OldIndex--;
        }

        System.out.println(new String(newS));
    }
}

标签:卡码,ch,String,int,反转,lens,字符串,public
From: https://www.cnblogs.com/FreeDrama/p/18403278

相关文章

  • Day03 链表part01| LeetCode 203. 移除链表元素,707. 设计链表,206. 反转链表
    链表理论基础链表一种通过指针串联在一起的线性结构数据域指针域(存放指向下一个节点的指针,最后一个节点的指针域指向NULL)入口节点——head头节点链表类型单链表双链表两个指针域一个指向下一个节点一个指向上一个节点循环链表首尾相连约瑟夫环问题......
  • C++字符串中的string类操作
    愿我如星君如月,夜夜流光相皎洁。                           ——《车逍遥篇》【宋】范成大目录正文:主要特点:基本操作: 代码演示:总结:今天我们接着上次的章节继续,这次我们来说一个为解决上个方法的缺陷而诞生......
  • 图论篇--代码随想录算法训练营第五十三天打卡| 110. 字符串接龙,105.有向图的完全可达
    110.字符串接龙题目链接:110.字符串接龙题目描述:字典strList中从字符串beginStr和endStr的转换序列是一个按下述规格形成的序列: 序列中第一个字符串是beginStr。序列中最后一个字符串是endStr。 每次转换只能改变一个字符。 转换过程中的中间字符串必须是字典......
  • C语言练习题--一维、二维字符串数组
    1.下列对C语言字符数组的描述中错误的是(D) A.字符数组可以存放字符串B.字符数组中的字符串可以整体输入、输出C.不可以用关系运算符对字符数组中的字符串进行比较D.可以在赋值语句中通过赋值运算符"="对字符数组整体赋值分析:D只能逐个字符进行复制或者利用字......
  • Python中如何实现字符串的查询和替换?
    在Python中,字符串的查询和替换是字符串处理中的基础且常用的操作。Python提供了多种方法来实现这些功能,包括使用内置的方法、正则表达式等。一、字符串的查询字符串的查询通常指的是在字符串中查找子串的位置、出现的次数,或者检查子串是否存在等。Python的字符串对象提供了多......
  • 844. 比较含退格的字符串
    c++字符串还是不太熟练classSolution{public:boolbackspaceCompare(strings,stringt){returndealString(s)==dealString(t);}private:stringdealString(conststring&s){stringret;intcurIndex=0;while(......
  • 代码随想录算法训练营第九天 | Javascript | 力扣Leetcode | 手撕KMP的一天 | 28. 找
    目录前言简介题目链接:28.找出字符串中第一个匹配项的下标题目链接:459.重复的子字符串前言踏平坎坷成大道,斗罢艰险又出发!自律的尽头是自控,自控的尽头是硬控。愿道友们披荆斩棘,终能得偿所愿。简介本人是小几年经验的前端开发,算法基础只有力扣几十道题,非常薄弱。......
  • Python入门教程-Python 中的字符串及常用操作有哪些
    字符串是编程语言中最常见和最基础的数据类型之一。在Python中,字符串(string)是用于表示文本数据的序列。无论是处理用户输入、文件读写,还是处理网络数据,字符串都是编程中的关键工具之一。Python提供了许多方便的操作和方法来处理字符串数据。本文将带你从基础入门,详细介绍......
  • 深入掌握Go语言中的正则表达式与字符串处理
    Go语言中的正则表达式与模式匹配在编程中,字符串处理是常见的需求之一,而正则表达式则是一个强大的工具,能够帮助我们实现复杂的字符串匹配、提取和替换功能。Go语言内置了对正则表达式的支持,通过regexp包,我们可以轻松实现模式匹配的各种操作。本文将详细介绍正则表达式在Go语......
  • 十一、C语言:字符串函数
    目录一、strlen二、strcpy三、strcat 四、strcmp五、strstr六、strtok七、strerror一、strlen注意:strlen()函数的返回值是size_t,两个size_t相减仍为无符号数intmain(){ chararr[10]="abc"; charbrr[10]="abc123"; if(strlen(arr)-strlen(brr)>0)......