찾다
웹 프론트엔드JS 튜토리얼자바스크립트에서 문자열 적용(코드)

문자열은 JavaScript에서 매우 중요한 지식 중 하나입니다. 이 문서에는 여러 가지 예가 나열되어 있습니다.

각 API의 사용법에 더 익숙해지세요. 다음은 leetcode 질문(문자열 입력 질문 세트)의 javascript 버전에 대한 솔루션입니다.

1. 문자열 반전

사용 방법

입력 문자열을 반전시키는 함수를 작성하세요.

예제 1:

输入: "hello"
输出: "olleh"

예제 2:

输入: "A man, a plan, a canal: Panama"
输出: "amanaP :lanac a ,nalp a ,nam A"

/**
 * @param {string} s
 * @return {string}
 */
var reverseString = function(s) {
    return s.split('').reverse().join('')
};

Comments 구현

일반적인 작성 방법으로는 배열로 변환, 뒤집기, 다시 변경 등이 있습니다.

2. 정수 역순

설명

32비트 부호 있는 정수가 주어지면 정수의 숫자를 역으로 바꾸세요.

참고:
우리 환경에서는 값 범위가 [−231, 231 − 1]인 32비트 부호 있는 정수만 저장할 수 있다고 가정합니다. 이 가정 하에서 역방향 정수가 오버플로되면 0이 반환됩니다.

예시 1:

输入: 123
输出: 321

예시 2:

输入: -123
输出: -321

예시 3:

输入: 120
输出: 21

Implementation

/**
 * @param {number} x
 * @return {number}
 */
var _min = Math.pow(-2,31)
var _max = Math.pow(2,31)
var reverse = function(x) {
    var _num = null;
    if(x_max || _num<_min><h4 id="Comment">Comment</h4>
<p>첫 번째 질문과 다르지 않은 것 같습니다. 문자열로 변환하고, 뒤집고, 숫자 값으로 변환합니다. 처리해야 할 것은 범위를 벗어난 숫자와 음수 문제입니다</p>
<h3 id="문자열의-첫-번째-고유-문자">3. 문자열의 첫 번째 고유 문자</h3>
<h4 id="설명">설명</h4>
<p>문자열이 주어지면 첫 번째 반복되지 않는 문자를 찾아 반환합니다. 색인. 존재하지 않으면 -1이 반환됩니다. <br> 참고: <br> 문자열에는 소문자만 포함되어 있다고 가정할 수 있습니다. </p>
<h4 id="사례">사례 1:</h4>
<pre class="brush:php;toolbar:false">s = "leetcode"
返回 0.

사례 2:

s = "loveleetcode",
返回 2.

Implementation

/**
 * @param {string} s
 * @return {number}
 */
var firstUniqChar = function(s) {
    for(var i = 0 ; i <h4 id="Comment">Comment</h4><p>해결책은 그다지 좋지 않으며 <code>index는 일관적이므로 반복이 없음을 증명합니다 <code>index</code>一致就证明没重复<br>  最快的方法当然是把当前的存在<code>map</code>里面,然后计数,再遍历一遍<code>map</code>就ok。</code></p><h3 id="有效的字母异位词">4.有效的字母异位词</h3><h4 id="说明">说明</h4><p>给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。</p><p>说明:<br>  你可以假设字符串只包含小写字母。</p><p>进阶:<br>  如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?</p><h4 id="示例">示例 1:</h4><pre class="brush:php;toolbar:false">输入: s = "anagram", t = "nagaram"
输出: true

示例 2:

输入: s = "rat", t = "car"
输出: false

方案

/**
 * @param {string} s
 * @param {string} t
 * @return {boolean}
 */
var isAnagram = function(s, t) {
    var _sArr = {};
    var _tArr = {};
    if(s.length != t.length) return false;
    for(var i = 0;i<s.length><h4 id="点评">点评</h4>
<p>这个就是通过计数,然后判断是否元素都一样多。</p>
<h3 id="验证回文字符串">5.验证回文字符串</h3>
<h4 id="说明">说明</h4>
<p>给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。</p>
<p>说明:<br>  本题中,我们将空字符串定义为有效的回文串。</p>
<h4 id="示例">示例 1:</h4>
<pre class="brush:php;toolbar:false">输入: "A man, a plan, a canal: Panama"
输出: true

示例 2:

输入: "race a car"
输出: false

方案

/**
 * @param {string} s
 * @return {boolean}
 */
var isPalindrome = function(s) {
    var _s = s.replace(/[^a-z0-9]/gi,'').toLowerCase();
    return _s.split('').reverse().join('') == _s
};

点评

通过正则把不要的字符都删掉,转化为小写,翻转比对。

6.字符串转整数(atoi)

说明

实现 atoi,将字符串转为整数。

在找到第一个非空字符之前,需要移除掉字符串中的空格字符。如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合起来,这部分字符即为整数的值。如果第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。

字符串可以在形成整数的字符后面包括多余的字符,这些字符可以被忽略,它们对于函数没有影响。

当字符串中的第一个非空字符序列不是个有效的整数;或字符串为空;或字符串仅包含空白字符时,则不进行转换。

若函数不能执行有效的转换,返回 0。

说明:
假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231,  231 − 1]。如果数值超过可表示的范围,则返回  INT_MAX (231 − 1) 或 INT_MIN (−231) 。

示例 1:

输入: "42"
输出: 42

示例 2:

输入: "   -42"
输出: -42
解释: 第一个非空白字符为 '-', 它是一个负号。
     我们尽可能将负号与后面所有连续出现的数字组合起来,最后得到 -42 。

示例 3:

输入: "4193 with words"
输出: 4193
解释: 转换截止于数字 '3' ,因为它的下一个字符不为数字。

示例 4:

输入: "words and 987"
输出: 0
解释: 第一个非空字符是 'w', 但它不是数字或正、负号。
     因此无法执行有效的转换。

示例 5

输入: "-91283472332"
输出: -2147483648
解释: 数字 "-91283472332" 超过 32 位有符号整数范围。 
     因此返回 INT_MIN (−231) 。

方案

/**
 * @param {string} str
 * @return {number}
 */
var myAtoi = function(str) {
    var _num = parseInt(str) || 0
    if(_num = (Math.pow(2,31))){
       return (Math.pow(2,31)-1)
    }else{
        return _num
    }
};

点评

这个没什么好说的,判断边界,然后parseInt

7.实现strStr()

说明

给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回  -1。

说明:
 当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。
 对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与C语言的 strstr() 以及 Java的 indexOf() 定义相符。

示例 1:

输入: haystack = "hello", needle = "ll"
输出: 2

示例 2:

输入: haystack = "aaaaa", needle = "bba"
输出: -1

方案

/**
 * @param {string} haystack
 * @param {string} needle
 * @return {number}
 */
var strStr = function(haystack, needle) {
    return haystack.indexOf(needle)
};

点评

也没什么说的吧,正则或者indexOf 가장 빠른 방법은 물론 현재 값을 map에 저장한 다음 이를 계산하고 map을 순회하는 것입니다. 다시 한번 그러면 괜찮을 거예요.

4. 유효한 철자법

설명

두 개의 문자열 s와 t가 주어졌을 때, t가 s의 철자법인지 확인하는 함수를 작성하세요.

🎜참고:🎜 문자열에는 소문자만 포함되어 있다고 가정할 수 있습니다. 🎜🎜고급:🎜 입력 문자열에 유니코드 문자가 포함되어 있으면 어떻게 되나요? 이 상황을 처리하기 위해 솔루션을 조정할 수 있습니까? 🎜🎜예제 1:🎜
1.     1
2.     11
3.     21
4.     1211
5.     111221
🎜예제 2:🎜
输入: 1
输出: "1"
🎜Scheme🎜
输入: 4
输出: "1211"
🎜Comments🎜🎜이는 요소의 개수가 같은지 세어 확인하는 것입니다. 🎜🎜5. 회문 문자열 확인🎜🎜설명🎜🎜문자열이 주어졌을 때 영문자와 숫자만 고려하며 대소문자는 무시됩니다. 🎜🎜설명: 🎜 이 질문에서는 빈 문자열을 유효한 회문 문자열로 정의합니다. 🎜🎜예제 1:🎜
/**
 * @param {number} n
 * @return {string}
 */
var countAndSay = function(n) {
    var _str = '1';
    for(var i=1;i<n>''+v.length+v[0]).join('');
    }
    return _str
};</n>
🎜예제 2:🎜
输入: ["flower","flow","flight"]
输出: "fl"
🎜Scheme🎜
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
🎜Comments🎜🎜정규식을 사용하여 불필요한 문자를 모두 삭제하고 소문자로 변환한 후 뒤집어 비교하세요. 🎜🎜6. 문자열을 정수로 변환(atoi) 🎜🎜 설명 🎜🎜 atoi를 구현하고 문자열을 정수로 변환합니다. 🎜🎜 비어 있지 않은 첫 번째 문자를 찾기 전에 문자열에서 공백 문자를 제거해야 합니다. Null이 아닌 첫 번째 문자가 더하기 또는 빼기 기호인 경우 해당 기호를 선택하고 문자의 이 부분이 정수 값입니다. Null이 아닌 첫 번째 문자가 숫자인 경우 후속 연속 숫자 문자와 직접 결합되어 정수를 형성합니다. 🎜🎜문자열은 정수를 구성하는 문자 뒤에 추가 문자를 포함할 수 있습니다. 이러한 문자는 무시할 수 있으며 함수에 영향을 주지 않습니다. 🎜🎜문자열에서 비어 있지 않은 첫 번째 문자 시퀀스가 ​​유효한 정수가 아니거나 문자열이 비어 있거나 문자열에 공백 문자만 포함되어 있으면 변환이 수행되지 않습니다. 🎜🎜함수가 유효한 변환을 수행할 수 없으면 0을 반환합니다. 🎜🎜설명: 🎜우리 환경에서는 값 범위가 [−231, 231 − 1]인 32비트 부호 있는 정수만 저장할 수 있다고 가정합니다. 값이 표현 가능한 범위를 초과하는 경우 INT_MAX(231 − 1) 또는 INT_MIN(−231)이 반환됩니다. 🎜🎜예시 1:🎜
/**
 * @param {string[]} strs
 * @return {string}
 */
var longestCommonPrefix = function(strs) {
    var _arr = (strs[0]||'').split('').map((v,i)=>strs[0].slice(0,i+1)).reverse();
    for(var i = 1;i<strs.length>🎜예시 2:🎜rrreee🎜예시 3:🎜rrreee🎜예시 4:🎜rrreee🎜예시 5🎜rrreee🎜Scheme🎜rrreee🎜Comments🎜🎜할 말이 없습니다 이것으로 경계를 판단하고, 그런 다음 <code>parseInt</code>🎜🎜7. strStr()🎜🎜Explanation🎜🎜을 구현합니다. haystack 문자열과 needle 문자열이 주어지면 haystack 문자열에서 needle 문자열이 나타나는 첫 번째 위치를 찾습니다(0부터 시작). . 존재하지 않으면 -1이 반환됩니다. 🎜🎜설명:🎜 needle이 빈 문자열인 경우 어떤 값을 반환해야 하나요? 면접에서 물어볼 수 있는 좋은 질문입니다. 🎜 이 질문의 경우 needle이 빈 문자열인 경우 0을 반환해야 합니다. 이는 C의 strstr() 및 Java의 indexOf() 정의와 일치합니다. 🎜🎜예제 1:🎜rrreee🎜예제 2:🎜rrreee🎜Scheme🎜rrreee🎜Comment🎜🎜말할 것도 없습니다. 정규 또는 <code>indexOf</code>를 달성할 수 있습니다🎜🎜8. 🎜🎜카운팅 시퀀스는 정수 시퀀스를 의미하며, 다음 숫자를 얻기 위해 정수 순서대로 계산이 수행됩니다. 처음 5개 항목은 다음과 같습니다. 🎜<pre class="brush:php;toolbar:false">1.     1
2.     11
3.     21
4.     1211
5.     111221

1 被读作  "one 1"  ("一个一") , 即 11。
 11 被读作 "two 1s" ("两个一"), 即 21。
 21 被读作 "one 2",  "one 1" ("一个二" ,  "一个一") , 即 1211。

给定一个正整数 n ,输出报数序列的第 n 项。
 注意:整数顺序将表示为一个字符串。

示例 1:

输入: 1
输出: "1"

示例 2:

输入: 4
输出: "1211"

方案

/**
 * @param {number} n
 * @return {string}
 */
var countAndSay = function(n) {
    var _str = '1';
    for(var i=1;i<n>''+v.length+v[0]).join('');
    }
    return _str
};</n>

点评

我的想法是选出连续的同字符,然后把该字符串变成长度加字符,再拼回去

9. 最长公共前缀

说明

编写一个函数来查找字符串数组中的最长公共前缀。
 如果不存在公共前缀,返回空字符串 ""。

说明:
 所有输入只包含小写字母 a-z 。

示例 1:

输入: ["flower","flow","flight"]
输出: "fl"

示例 2:

输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。

方案

/**
 * @param {string[]} strs
 * @return {string}
 */
var longestCommonPrefix = function(strs) {
    var _arr = (strs[0]||'').split('').map((v,i)=>strs[0].slice(0,i+1)).reverse();
    for(var i = 1;i<strs.length><h4 id="点评">点评</h4>
<p>想法是做一个公共前缀数组,遍历,如果有不满足的,就操作这个前缀数组,直到最后,剩下的就是满足的。取最大的一个。</p>
<p>相关推荐:</p>
<p><a href="http://www.php.cn/js-tutorial-341302.html" target="_self">JavaScript中的字符串操作</a><br></p>
<p><a href="http://www.php.cn/js-tutorial-341093.html" target="_self">JavaScript计算字符串中每个字符出现的次数</a></p></strs.length>

위 내용은 자바스크립트에서 문자열 적용(코드)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
JavaScript 엔진 : 구현 비교JavaScript 엔진 : 구현 비교Apr 13, 2025 am 12:05 AM

각각의 엔진의 구현 원리 및 최적화 전략이 다르기 때문에 JavaScript 엔진은 JavaScript 코드를 구문 분석하고 실행할 때 다른 영향을 미칩니다. 1. 어휘 분석 : 소스 코드를 어휘 단위로 변환합니다. 2. 문법 분석 : 추상 구문 트리를 생성합니다. 3. 최적화 및 컴파일 : JIT 컴파일러를 통해 기계 코드를 생성합니다. 4. 실행 : 기계 코드를 실행하십시오. V8 엔진은 즉각적인 컴파일 및 숨겨진 클래스를 통해 최적화하여 Spidermonkey는 유형 추론 시스템을 사용하여 동일한 코드에서 성능이 다른 성능을 제공합니다.

브라우저 너머 : 실제 세계의 JavaScript브라우저 너머 : 실제 세계의 JavaScriptApr 12, 2025 am 12:06 AM

실제 세계에서 JavaScript의 응용 프로그램에는 서버 측 프로그래밍, 모바일 애플리케이션 개발 및 사물 인터넷 제어가 포함됩니다. 1. 서버 측 프로그래밍은 Node.js를 통해 실현되며 동시 요청 처리에 적합합니다. 2. 모바일 애플리케이션 개발은 재교육을 통해 수행되며 크로스 플랫폼 배포를 지원합니다. 3. Johnny-Five 라이브러리를 통한 IoT 장치 제어에 사용되며 하드웨어 상호 작용에 적합합니다.

Next.js (백엔드 통합)로 멀티 테넌트 SAAS 애플리케이션 구축Next.js (백엔드 통합)로 멀티 테넌트 SAAS 애플리케이션 구축Apr 11, 2025 am 08:23 AM

일상적인 기술 도구를 사용하여 기능적 다중 테넌트 SaaS 응용 프로그램 (Edtech 앱)을 구축했으며 동일한 작업을 수행 할 수 있습니다. 먼저, 다중 테넌트 SaaS 응용 프로그램은 무엇입니까? 멀티 테넌트 SAAS 응용 프로그램은 노래에서 여러 고객에게 서비스를 제공 할 수 있습니다.

Next.js (Frontend Integration)를 사용하여 멀티 테넌트 SaaS 응용 프로그램을 구축하는 방법Next.js (Frontend Integration)를 사용하여 멀티 테넌트 SaaS 응용 프로그램을 구축하는 방법Apr 11, 2025 am 08:22 AM

이 기사에서는 Contrim에 의해 확보 된 백엔드와의 프론트 엔드 통합을 보여 주며 Next.js를 사용하여 기능적인 Edtech SaaS 응용 프로그램을 구축합니다. Frontend는 UI 가시성을 제어하기 위해 사용자 권한을 가져오고 API가 역할 기반을 준수하도록합니다.

JavaScript : 웹 언어의 다양성 탐색JavaScript : 웹 언어의 다양성 탐색Apr 11, 2025 am 12:01 AM

JavaScript는 현대 웹 개발의 핵심 언어이며 다양성과 유연성에 널리 사용됩니다. 1) 프론트 엔드 개발 : DOM 운영 및 최신 프레임 워크 (예 : React, Vue.js, Angular)를 통해 동적 웹 페이지 및 단일 페이지 응용 프로그램을 구축합니다. 2) 서버 측 개발 : Node.js는 비 차단 I/O 모델을 사용하여 높은 동시성 및 실시간 응용 프로그램을 처리합니다. 3) 모바일 및 데스크탑 애플리케이션 개발 : 크로스 플랫폼 개발은 개발 효율을 향상시키기 위해 반응 및 전자를 통해 실현됩니다.

JavaScript의 진화 : 현재 동향과 미래 전망JavaScript의 진화 : 현재 동향과 미래 전망Apr 10, 2025 am 09:33 AM

JavaScript의 최신 트렌드에는 Typescript의 Rise, 현대 프레임 워크 및 라이브러리의 인기 및 WebAssembly의 적용이 포함됩니다. 향후 전망은보다 강력한 유형 시스템, 서버 측 JavaScript 개발, 인공 지능 및 기계 학습의 확장, IoT 및 Edge 컴퓨팅의 잠재력을 포함합니다.

Demystifying JavaScript : 그것이하는 일과 중요한 이유Demystifying JavaScript : 그것이하는 일과 중요한 이유Apr 09, 2025 am 12:07 AM

JavaScript는 현대 웹 개발의 초석이며 주요 기능에는 이벤트 중심 프로그래밍, 동적 컨텐츠 생성 및 비동기 프로그래밍이 포함됩니다. 1) 이벤트 중심 프로그래밍을 사용하면 사용자 작업에 따라 웹 페이지가 동적으로 변경 될 수 있습니다. 2) 동적 컨텐츠 생성을 사용하면 조건에 따라 페이지 컨텐츠를 조정할 수 있습니다. 3) 비동기 프로그래밍은 사용자 인터페이스가 차단되지 않도록합니다. JavaScript는 웹 상호 작용, 단일 페이지 응용 프로그램 및 서버 측 개발에 널리 사용되며 사용자 경험 및 크로스 플랫폼 개발의 유연성을 크게 향상시킵니다.

Python 또는 JavaScript가 더 좋습니까?Python 또는 JavaScript가 더 좋습니까?Apr 06, 2025 am 12:14 AM

Python은 데이터 과학 및 기계 학습에 더 적합한 반면 JavaScript는 프론트 엔드 및 풀 스택 개발에 더 적합합니다. 1. Python은 간결한 구문 및 풍부한 라이브러리 생태계로 유명하며 데이터 분석 및 웹 개발에 적합합니다. 2. JavaScript는 프론트 엔드 개발의 핵심입니다. Node.js는 서버 측 프로그래밍을 지원하며 풀 스택 개발에 적합합니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경