首页 > 其他分享 >[代码随想录] 第七天

[代码随想录] 第七天

时间:2024-01-17 18:56:05浏览次数:30  
标签:right String temp int StringBuilder 代码 随想录 第七天 left

344.翻转字符串[https://leetcode.cn/problems/reverse-string/submissions/496111203/]
思路:类似于原地翻转数组,左指针右指针向中间靠拢,交换对应元素。

class Solution {
    public void reverseString(char[] s) {
        int left=0;
        int right = s.length-1;
        char temp;
        while(right > left){
            temp=s[left];
            s[left] =s[right];
            s[right] = temp;
            left++;
            right--;
        }
    }
}
**-----------------------分割线-------------------------**

卡码网54.替换数字[https://kamacoder.com/problempage.php?pid=1064]
思路:ez

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        StringBuilder sb = new StringBuilder();

        StringBuilder number = new StringBuilder("number");
        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) - '0' >= 0 && s.charAt(i) - '9' <= 0) {
                sb.append(number);
            } else {
                sb.append(s.charAt(i));
            }
        }
        System.out.println(sb.toString());
    }
}
**-----------------------分割线-------------------------**

卡码网55. 右旋字符串[https://kamacoder.com/problempage.php?pid=1065]
思路:就是将字符串分割成左右字符串,再将左字符串拼接到右字符串后。

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int k = sc.nextInt();
        sc.nextLine();
        String s = sc.nextLine();
        String temp_01 = s.substring(s.length() - k);
        String temp_02 = s.substring(0, s.length() - k);
        StringBuilder sb = new StringBuilder(temp_01);
        sb.append(temp_02);
        System.out.println(sb.toString());

    }
}
**-----------------------分割线-------------------------**

151.翻转字符串里的单词[https://leetcode.cn/problems/reverse-words-in-a-string/description/]
思路:从右到左遍历字符串,遍历到空格时,从当前位置再往右遍历保存此单词。

class Solution {
    public String reverseWords(String s) {
        StringBuilder ans = new StringBuilder();
        int i = s.length() - 1;
        int last;
        int j;
        for (; i >= 0; i--) {
            if (s.charAt(i) != ' ') {
                last = i;
                while (i >= 0 && s.charAt(i) != ' ') {
                    i--;
                }
                j = i + 1;
                while (j <= last) {
                    ans.append(s.charAt(j));
                    j++;
                }
                ans.append(' ');
            }
        }
        ans.deleteCharAt(ans.length() - 1);
        return ans.toString();
    }
}
**-----------------------分割线-------------------------**

541.反转字符串II[https://leetcode.cn/problems/reverse-string-ii/]
思路:难点在于right要在i+k-1和结尾中取小值!

class Solution {
    public String reverseStr(String s, int k) {
        StringBuilder sb = new StringBuilder(s);
        int right;
        int left;
        char temp;
        int loop = s.length() / k;
        for (int i = 0; i < s.length(); i += 2 * k) {
            left = i;
            right = Math.min((i + k - 1), s.length() - 1);
            while (right > left) {
                temp = sb.charAt(left);
                sb.setCharAt(left, sb.charAt(right));
                sb.setCharAt(right, temp);
                right--;
                left++;
            }
        }
        return sb.toString();
    }
}

标签:right,String,temp,int,StringBuilder,代码,随想录,第七天,left
From: https://www.cnblogs.com/cssg/p/17969945

相关文章

  • 敲敲云—超越想象的零代码平台,听听网友怎么说
    最近接触使用了一个新的零代码平台-敲敲云,在此记录一下使用的使用感受。前言敲敲云平台功能强大,上手简单易用性,给我留下了不错的印象。平台以零代码的理念为核心,能够快速配置和构建各场景的应用,最大化的提高了我的工作效率。接下来简单说一下我的使用感受。使用感受一、无代......
  • HanLP — HMM隐马尔可夫模型 -- 维特比(Viterbi)算法 --完整示例代码
    完成代码importpicklefromtqdmimporttqdmimportnumpyasnpimportosdefmake_label(text_str):"""从单词到label的转换,如:今天---->BE麻辣肥牛:--->BMME的--->S"""text_len=len(text_str)iftext_len==1:......
  • 找不到或无法加载主类、代码修改了运行还是旧代码
     找不到或无法加载主类、1、简单jdk配置有没有问题2、项目有没有编译成功或者重新编译试试 代码修改了运行还是旧代码将项目的.iml文件删除掉、mvnidea:module重新生成一下,重启一下编辑器模块有问题的话 就删了重新导入一下 无法运行的话记得......
  • 几行Python代码,轻松搞定Excel表格数据去重
    转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。众所周知,Python在处理Excel数据文档时非常强大。最近也尝试了一下使用Python处理Excel数据,几行代码就能实现一个非常有用的功能,非常棒!这次实验的是,使用Python给Excel数据去重。创建......
  • java代码里如何判断某个IP/域名是否可达?
    在Java中,你可以使用java.net.InetAddress类来实现ping某个IP地址是否可达。下面是一个简单的示例代码:importjava.net.InetAddress;importjava.io.IOException;publicclassPingExample{publicstaticvoidmain(String[]args){StringipAddress="你的......
  • (Python)每日代码||2024.1.17||函数中给列表形参默认值时,该默认列表在函数中的改变会
    deff(x,li=[1]):print(id(li))li.append(x)print(li)f('a')#第一次调用函数print()f('b')#第二次调用函数print()f('a',[])#第三次调用函数print()f('b',[2,2])#第四次调用函数print()f('a')#第五次调用函数'''输出14......
  • 源代码审计怎么做?有哪些常用工具
    源代码审计是一种通过检查源代码来发现潜在的安全漏洞的方法。下面是常用的源代码审计工具:1、Fortify:通过内置的五大主要分析引擎,对源代码进行静态分析,并与特有的软件安全漏洞规则集进行全面地匹配、查找。2、Checkmax:通过虚拟编译器自动对软件源代码分析,并建立了代码元素及代码元......
  • MetaGPT day01: MetaGPT作者代码走读、软件公司初始示例
    LLM发展历史-2013年word2vec提出,但效果不好-2017年Transformer结构提出,降低网络复杂度-2018年BERT预训练语言模型效果显著提升-2019年GPT-3推出,采用大规模预训练-2020年InstructionTuning提出,实现零样本学习-2022年InstructGPT解决模型毒性问题-当前GPT-4成本......
  • FastAPI学习-30 项目代码中添加自己的日志内容
    前言前面一篇【FastAPI学习-29uvicorn使用log_config参数设置logger日志格式】已经学会了配置uvicorn的日志。如何在fastapi项目代码中添加自己的日志呢?添加日志创建一个logger实例,名称为"fast"fromfastapiimportFastAPIimportlogginglogger=logging.getLo......
  • 代码随想录 day21 二叉搜索树的最小绝对差 二叉搜索树中的众数 二叉树的最近公共祖先
    二叉搜索树的最小绝对差二叉搜索树就是有序数组那么转换一下就很简单了也可以直接在遍历二叉搜索树的时候进行比较需要一个指针记录前一个节点二叉搜索树中的众数既可以把这题的二叉搜索树当成一般树来做这样就是层序遍历树然后用map记录频率再取频率最高的值这里用......