プログラマコードテスト練習<文字列中のpとyの個数>
12899 ワード
🔎 <文字列のpとyの個数>
📝 答案用紙
今からコードテストの練習を始めて、私の恥ずかしい答えと他の人の答えを見てみましょう.
🚩 提出した答え
function solution(s) {
var answer = true;
if (s.match(/p/gi).length !== s.match(/y/gi).length) {
answer = false;
}
return answer;
}
match()
と正規表現を使用して、文字列内の正規表現が一致する部分を検索して解決しようとしましたが、テスト中に実行時エラーが発生しました.正規表現で文字列を検索するのに時間がかかるためと推測される.
また、match()
に基づいて文字列を検索した場合、p
、y
が存在しないとnull
が返され、エラーが発生する.
主な使用法
match()
、正規表現
🚩 他人の答え
include()の答えを使う
function solution(s){
var answer = true;
var pCount = 0;
var yCount = 0;
for (let i = 0; i < s.length; i++) {
if (s.toLowerCase()[i].includes("p")) {
pCount++;
}
}
for (let j = 0; j < s.length; j++) {
if (s.toLowerCase()[j].includes("y")) {
yCount++;
}
}
if (pCount !== yCount) {
answer = false;
}
return answer;
}
includes()
とfor
の繰り返し文を使用して、文字が含まれているかどうかを検索できます.しかし、李ギョンウは大文字と小文字が区別されているため、toLowerCase()
またはtoUpperCase()
で統一される.
split()の答えを使う
function solution(s){
// 함수를 완성하세요
return s.toUpperCase().split("P").length === s.toUpperCase().split("Y").length;
// 해당 문자를 기준으로 나누면, ["", "", "OOOYY"], ["PPOOO", "", ""] 로 구분된다.
}
split()
でこの文字を分離して配列に戻した後、その配列の長さで検索することができる.ただし、これも大文字と小文字を区別するので、toLowerCase()
またはtoUpperCase()
で統一します.
📌 学習のポイント
split()
split(separator)メソッドにより、String
オブジェクトを指定するseparator
を使用して複数の文字列に分割することができる.この場合、区切り記号を""
と指定すると、各文字が分離されます.
includes()
配列に特定の要素が含まれているか否かをincludes(valueToFind[, fromIndex])で判別することができる.fromIndex
が配列長を超えると、false
が返されます.[1, 2, 3].includes(2); // true
[1, 2, 3].includes(4); // false
[1, 2, 3].includes(3, 3); // false
[1, 2, 3].includes(3, -1); // true
[1, 2, NaN].includes(NaN); // true
['a', 'b', 'c'].includes('c', 3); // false
['a', 'b', 'c'].includes('c', 100); // false
match()
match()メソッドは、文字列が正規表現と一致する部分を検索します.
Reference
この問題について(プログラマコードテスト練習<文字列中のpとyの個数>), 我々は、より多くの情報をここで見つけました
https://velog.io/@mini_vanta/프로그래머스-코딩테스트-연습-문자열-내-p와-y의-개수
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
今からコードテストの練習を始めて、私の恥ずかしい答えと他の人の答えを見てみましょう.
🚩 提出した答え
function solution(s) {
var answer = true;
if (s.match(/p/gi).length !== s.match(/y/gi).length) {
answer = false;
}
return answer;
}
match()
と正規表現を使用して、文字列内の正規表現が一致する部分を検索して解決しようとしましたが、テスト中に実行時エラーが発生しました.正規表現で文字列を検索するのに時間がかかるためと推測される.また、
match()
に基づいて文字列を検索した場合、p
、y
が存在しないとnull
が返され、エラーが発生する.主な使用法
match()
、正規表現🚩 他人の答え
include()の答えを使う
function solution(s){
var answer = true;
var pCount = 0;
var yCount = 0;
for (let i = 0; i < s.length; i++) {
if (s.toLowerCase()[i].includes("p")) {
pCount++;
}
}
for (let j = 0; j < s.length; j++) {
if (s.toLowerCase()[j].includes("y")) {
yCount++;
}
}
if (pCount !== yCount) {
answer = false;
}
return answer;
}
includes()
とfor
の繰り返し文を使用して、文字が含まれているかどうかを検索できます.しかし、李ギョンウは大文字と小文字が区別されているため、toLowerCase()
またはtoUpperCase()
で統一される.split()の答えを使う
function solution(s){
// 함수를 완성하세요
return s.toUpperCase().split("P").length === s.toUpperCase().split("Y").length;
// 해당 문자를 기준으로 나누면, ["", "", "OOOYY"], ["PPOOO", "", ""] 로 구분된다.
}
split()
でこの文字を分離して配列に戻した後、その配列の長さで検索することができる.ただし、これも大文字と小文字を区別するので、toLowerCase()
またはtoUpperCase()
で統一します.📌 学習のポイント
split()
split(separator)メソッドにより、String
オブジェクトを指定するseparator
を使用して複数の文字列に分割することができる.この場合、区切り記号を""
と指定すると、各文字が分離されます.
includes()
配列に特定の要素が含まれているか否かをincludes(valueToFind[, fromIndex])で判別することができる.fromIndex
が配列長を超えると、false
が返されます.[1, 2, 3].includes(2); // true
[1, 2, 3].includes(4); // false
[1, 2, 3].includes(3, 3); // false
[1, 2, 3].includes(3, -1); // true
[1, 2, NaN].includes(NaN); // true
['a', 'b', 'c'].includes('c', 3); // false
['a', 'b', 'c'].includes('c', 100); // false
match()
match()メソッドは、文字列が正規表現と一致する部分を検索します.
Reference
この問題について(プログラマコードテスト練習<文字列中のpとyの個数>), 我々は、より多くの情報をここで見つけました
https://velog.io/@mini_vanta/프로그래머스-코딩테스트-연습-문자열-내-p와-y의-개수
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
[1, 2, 3].includes(2); // true
[1, 2, 3].includes(4); // false
[1, 2, 3].includes(3, 3); // false
[1, 2, 3].includes(3, -1); // true
[1, 2, NaN].includes(NaN); // true
['a', 'b', 'c'].includes('c', 3); // false
['a', 'b', 'c'].includes('c', 100); // false
Reference
この問題について(プログラマコードテスト練習<文字列中のpとyの個数>), 我々は、より多くの情報をここで見つけました https://velog.io/@mini_vanta/프로그래머스-코딩테스트-연습-문자열-내-p와-y의-개수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol