算法|344.反转字符串 541. 反转字符串II 卡码网:54.替换数字 151.翻转字符串里的单词 卡码网:55.右旋转字符串

本文主要是介绍算法|344.反转字符串 541. 反转字符串II 卡码网:54.替换数字 151.翻转字符串里的单词 卡码网:55.右旋转字符串,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

344.反转字符串

考察reverse, 也可以用其他方法

/** * @param {character[]} s* @return {void} Do not return anything, modify s in-place instead.*/
var reverseString = function (s) {return s.reverse();
};

541. 反转字符串

思路: 一般是i++, 这次给个猛的 i+=2*k
然后下面的while循环也是挺讨巧的, 后续要多读几次, 不然还不好理解

/**

  • @param {string} s
  • @param {number} k
  • @return {string}
    */

var reverseStr = function (s, k) {
const resArr = s.split(“”);
let len = s.length;
// 每隔 2k 个字符的前 k 个字符进行反转
for (let i = 0; i < resArr.length; i += 2 * k) {
let l = i - 1,
r = i + k > len ? len : i + k;
while (++l < --r) [resArr[l], resArr[r]] = [resArr[r], resArr[l]];
}
return resArr.join(“”);
};
console.log(reverseStr(“abcdefg”, 2));

151.翻转字符串里的单词

思考: 还是reverse的用法, 注意中间空格的处理

/*** @param {string} s* @return {string}*/
var reverseWords = function (s) {let str = s.trim();const arr = str.split(" ");// 过滤掉空数组元素const newArr = arr.filter((item) => item);return newArr.reverse().join(" ");
};
console.log(reverseWords("a good   example"));

54.替换数字

思考:

  • 对非数字的处理 !isNaN(parseInt())
  • 对ACM的熟练处理 , 结果要console出来 ,而不是return
let readline = require("readline");const rl = readline.createInterface({input: process.stdin,output: process.stdout,
});rl.on("line", function (line) {let arr = line.split("");for (let i = 0; i < arr.length; i++) {if (!isNaN(parseInt(arr[i]))) {arr[i] = "number";}}console.log(arr.join(""));
});

55.右旋转字符串

感觉和541题目很像, 后期练习下

459. 重复的子字符串

/*** @param {string} s* @return {boolean}*/
var repeatedSubstringPattern = function (s) {const str = s + s;//   为什么包含就true了呢return str.substring(1, str.length - 1).includes(s);
};
console.log(repeatedSubstringPattern("abab"));
console.log(repeatedSubstringPattern("aba"));

这篇关于算法|344.反转字符串 541. 反转字符串II 卡码网:54.替换数字 151.翻转字符串里的单词 卡码网:55.右旋转字符串的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/762021

相关文章

Java中String字符串使用避坑指南

《Java中String字符串使用避坑指南》Java中的String字符串是我们日常编程中用得最多的类之一,看似简单的String使用,却隐藏着不少“坑”,如果不注意,可能会导致性能问题、意外的错误容... 目录8个避坑点如下:1. 字符串的不可变性:每次修改都创建新对象2. 使用 == 比较字符串,陷阱满

使用C++实现链表元素的反转

《使用C++实现链表元素的反转》反转链表是链表操作中一个经典的问题,也是面试中常见的考题,本文将从思路到实现一步步地讲解如何实现链表的反转,帮助初学者理解这一操作,我们将使用C++代码演示具体实现,同... 目录问题定义思路分析代码实现带头节点的链表代码讲解其他实现方式时间和空间复杂度分析总结问题定义给定

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

Java数字转换工具类NumberUtil的使用

《Java数字转换工具类NumberUtil的使用》NumberUtil是一个功能强大的Java工具类,用于处理数字的各种操作,包括数值运算、格式化、随机数生成和数值判断,下面就来介绍一下Number... 目录一、NumberUtil类概述二、主要功能介绍1. 数值运算2. 格式化3. 数值判断4. 随机

css实现图片旋转功能

《css实现图片旋转功能》:本文主要介绍了四种CSS变换效果:图片旋转90度、水平翻转、垂直翻转,并附带了相应的代码示例,详细内容请阅读本文,希望能对你有所帮助... 一 css实现图片旋转90度.icon{ -moz-transform:rotate(-90deg); -webkit-transfo

C#从XmlDocument提取完整字符串的方法

《C#从XmlDocument提取完整字符串的方法》文章介绍了两种生成格式化XML字符串的方法,方法一使用`XmlDocument`的`OuterXml`属性,但输出的XML字符串不带格式,可读性差,... 方法1:通过XMLDocument的OuterXml属性,见XmlDocument类该方法获得的xm

Spring IOC控制反转的实现解析

《SpringIOC控制反转的实现解析》:本文主要介绍SpringIOC控制反转的实现,IOC是Spring的核心思想之一,它通过将对象的创建、依赖注入和生命周期管理交给容器来实现解耦,使开发者... 目录1. IOC的基本概念1.1 什么是IOC1.2 IOC与DI的关系2. IOC的设计目标3. IOC

JSON字符串转成java的Map对象详细步骤

《JSON字符串转成java的Map对象详细步骤》:本文主要介绍如何将JSON字符串转换为Java对象的步骤,包括定义Element类、使用Jackson库解析JSON和添加依赖,文中通过代码介绍... 目录步骤 1: 定义 Element 类步骤 2: 使用 Jackson 库解析 jsON步骤 3: 添

C#实现添加/替换/提取或删除Excel中的图片

《C#实现添加/替换/提取或删除Excel中的图片》在Excel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更加美观,下面我们来看看如何在C#中实现添加/替换/提取或删除E... 在Excandroidel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更

Java 字符数组转字符串的常用方法

《Java字符数组转字符串的常用方法》文章总结了在Java中将字符数组转换为字符串的几种常用方法,包括使用String构造函数、String.valueOf()方法、StringBuilder以及A... 目录1. 使用String构造函数1.1 基本转换方法1.2 注意事项2. 使用String.valu