首页 > 编程语言 >代码随想录算法训练营第8天 | 复习字符串API、双指针

代码随想录算法训练营第8天 | 复习字符串API、双指针

时间:2024-07-10 11:07:52浏览次数:13  
标签:String int 训练营 随想录 API 字符串 指针

2024年7月10日

题344. 翻转字符数组
记得用双指针,时间复杂度最低。

题541. 反转字符串II
首先自己实现一个String的reverse函数方便后面用,记得字符数组和字符串的互转方式。
然后计算有多少组2k,分组处理即可。

class Solution {
    public String reverseStr(String s, int k) {

        //计算有几组2K
        int len = s.length();
        int time = len/(2*k);
        int left = len%(2*k);//最后一组
        for(int i=0;i<time;i++){
            //区间就是substring(i,i+k);
            String xx = s.substring(i*2*k,i*2*k+k);
            xx = reverse(xx);
            s = s.substring(0,i*2*k)+xx+s.substring(i*2*k+k,len);
        }
        //最后一个区间
        if(left<k){
            s = s.substring(0,time*2*k)+reverse(s.substring(time*2*k,len));
        }else{
            s = s.substring(0,time*2*k)+reverse(s.substring(time*2*k,time*2*k+k))+s.substring(time*2*k+k,len);
        }
        return s;
    }

    public String reverse(String s){
        int i=0;
        int j=s.length()-1;
        char[] x = s.toCharArray();
        while(i<=j){
            char t = x[i];
            x[i] = x[j];
            x[j] = t;
            i+=1;
            j-=1;
        }
        return new String(x);
    }
}

卡码网:题54. 替换数字
这题熟练使用String的相关切分API即可。暂时先不考虑双指针优化。

标签:String,int,训练营,随想录,API,字符串,指针
From: https://www.cnblogs.com/hailicy/p/18293522

相关文章

  • DPAPI(Data Protection API)是Windows操作系统提供的一种加密API,用于帮助开发者保护用户
    DPAPI(DataProtectionAPI)在其设计上是相对安全的,但在使用过程中仍然可能存在一些潜在的漏洞或安全考虑:物理访问:如果攻击者能够物理访问受保护数据的存储设备(如硬盘或内存),并且拥有系统管理员权限,他们可能能够通过直接访问加密密钥或拦截解密过程来获取敏感信息。恶意软件......
  • 代码随想录算法训练营第57天 | 99.岛屿数量 深搜 、99.岛屿数量 广搜 、100.岛屿的最
    99.岛屿数量深搜注意深搜的两种写法,熟练掌握这两种写法以及知道区别在哪里,才算掌握的深搜。https://www.programmercarl.com/kamacoder/0099.岛屿的数量深搜.html/***@param{character[][]}grid*@return{number}*/varnumIslands=function(grid){letre......
  • 代码随想录算法训练营第56天 | 图论理论基础 、深搜理论基础、98. 所有可达路径、广
    图论理论基础今天主要是理论大家可以在看图论理论基础的时候,很多内容看不懂,例如也不知道看完之后还是不知道邻接矩阵,邻接表怎么用,别着急。理论基础大家先对各个概念有个印象就好,后面在刷题的过程中,每个知识点都会得到巩固。https://www.programmercarl.com/kamacoder/图......
  • 代码随想录算法训练营第七天 | 454.四数相加
    1、四数相加不需要考虑去重四个数组采两个数组一起相加的遍历方式,为了缩短时间复杂度。classSolution{public:intfourSumCount(vector<int>&nums1,vector<int>&nums2,vector<int>&nums3,vector<int>&nums4){unordered_map<int,int>......
  • 代码随想录刷题day 7 | 哈希表part02 454.四数相加II 383. 赎金信 15. 三数之和
    454.四数相加II//这道题使用哈希就可解决,使用一个map存储前两个数组中,所有组合产生的sum的频率;对于后两个数组中所有的组合,每出现一个和的相反数出现在map中,则代表出现了这个相反数频率个组合可以满足四数相加为0classSolution{publicintfourSumCount(int[]nums1,......
  • 【SQLite3】常用API
    SQLite3常用API数据库的打开和关闭数据库的打开(sqlite3_open函数)sqlite3_open()函数用于打开一个SQLite数据库文件的函数,函数原型如下:intsqlite3_open(constchar*filename,/*数据库文件的文件名,如果为":memory:"则表示创建内存中数据库*/sqlite3......
  • Day65 代码随想录打卡|回溯算法篇---组合总和II
    题目(leecodeT40):给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用 一次 。注意:解集不能包含重复的组合。 方法:本题的要求是每个元素在组合中只能......
  • 代码随想录算法训练营第六十三天 | prim算法、kruskal算法、复习
    53.寻宝—prim算法题目链接:https://kamacoder.com/problempage.php?pid=1053文档讲解:https://programmercarl.com/kamacoder/0053.%E5%AF%BB%E5%AE%9D-prim.html思路本题是最小生成树的模板题,最小生成树可以使用prim算法,也可以使用kruskal算法计算出来。prim算......
  • 使用Python Flask快速构建一个api server
    使用flask快速构建一个apiserver代码如下:fromflaskimportFlask,jsonify,requestapp=Flask(__name__)#定义一个路由,当访问根路径时返回欢迎信息@app.route('/')defhome():return'Hello,thisisasimpleAPI!'#定义一个路由,接受GET请求并返回JSON响......
  • APICloud+ cosClient快速构建APP
    APICloud简介APICloud是一个移动低代码开发平台,对于不同的需求场景提供了不同的功能模块,并快速构建企业级应用。cosClient模块简介cosClient是腾讯云对象存储(COS)针对APICloud平台桥接原生SDK封装的模块,可以使用cosClient快速接入并使用COS的功能,目前支持Android、iOS。在APIC......