码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 字符串相关算法


    1.反转字符串

    • 来源:leetcode 第334道题目
    • 题目说明:

      编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。

      不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。

    • 解题思路:双指针(相向指针)

    • 代码:

    1. public static void reverseString(char[] s) {
    2. int i = 0 ,j = s.length-1;
    3. while(i < j) {
    4. char temp = s[i];
    5. s[i] = s[j];
    6. s[j] = temp;
    7. i++;
    8. j--;
    9. }
    10. }

    2.压缩字符串

    • 来源:leetcode 第443道题目
    • 题目说明:

      字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。

    • 解题思路:双指针(同向指针)

    • 代码:

    1. public static String compressString(String S) {
    2. char[] s = S.toCharArray();
    3. int number = 0;
    4. String newS = new String();
    5. for (int i = 0 ; i< s.length ; i = i+number) {
    6. number = 0;
    7. for (int j = i; j < s.length; j++){
    8. if (s[i] == s[j]) {
    9. number++;
    10. }else {
    11. break;
    12. }
    13. }
    14. newS = newS + s[i] + number;
    15. }
    16. return newS.length() < S.length() ? newS : S;
    17. }

    3.无重复字符的最长子串

    题目说明:

    给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。

    解法一:暴力算法

    O(n3)的时间复杂度解法:

    1. public static int lengthOfLongestSubstring(String s) {
    2. String maxSubS = new String();
    3. char[] sc = s.toCharArray();
    4. for (int i = 0 ;i<s.length();i++){
    5. String tempS = new String();
    6. for(int j=i;j<s.length();j++) {
    7. if(tempS.contains(String.valueOf(sc[j]))){
    8. break;
    9. } else {
    10. tempS += sc[j];
    11. }
    12. }
    13. if (tempS.length() > maxSubS.length()) {
    14. maxSubS = tempS;
    15. }
    16. }
    17. return maxSubS.length();
    18. }

    解法二:滑动窗口

  • 相关阅读:
    axios 源码简析
    中国传统节日春节网页HTML代码 春节大学生网页设计制作成品下载 学生网页课程设计期末作业下载 DW春节节日网页作业代码下载
    线性代数学习笔记6-3:行列式的计算、代数余子式
    LabVIEW-IMAQ/IMAQdx/图像采集
    JS-语法-变量(声明、命名规范、一次性声明多个变量、使用)
    【C++设计模式之装饰模式:结构型】分析及示例
    基于windows窗体开发的学生信息管理系统
    华为欧拉sp1 tomcat8 访问 jsp jstl 标签异常
    7 个不容忽视的开源安全工具
    newstarctf2022week2
  • 原文地址:https://blog.csdn.net/jeffsmish/article/details/125534519
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号