Algorithm Basic_#3
に質問📓
文字列入力を受け入れると、文字列に次のいずれかが存在するかどうかを返す必要があります.
-I/O入力:stringタイプのアルファベット文字列 出力:booleanタイプ -I/O例
1)すべてのテキストを小文字または大文字に変換します.
2)最初の文字がaまたはbで始まる場合、最初の文字の5番目の文字がaまたはbで終わる場合、最初の文字が最後の文字と異なる場合にのみtrueが返されます.
国境を越える👌
- Reference code空の文字列に式を追加 4番目のインデックスから繰り返し 比較 は繰り返されません.
「-」を追加し、入力した連続する桁数の間で返す文字列を返す必要があります.
-I/O入力:文字列タイプの数値文字列 出力:文字列タイプの数値文字列 -I/O例
1)パラメータ値文字列をアルファベットで配列します.
2)for文を使用して、iおよびi+1の値が奇数であるかどうかを決定する.
3)配列法
4)配列を文字列
国境を越える👌
- Reference code
複文はインデックス1から確認します.
質問です.📓
文字列が要素の配列である場合は、最短文字列と最長文字列を削除する配列を返す必要があります.
-I/O入力:文字列タイプが要素の配列/ 出力:タイル -I/O例
1)パラメータ値配列の一番長い文字と一番短い文字を後から指定します.
2)for文を使用してパラメータ値配列を後から問合せ、長文字より長い場合は長文字として指定します.短い文字の長さより短い場合は、短い文字として指定します.
3)配列の
文字を直接指定するため、同じ長さの同じ文字はパラメータ値に入ると正しい結果が得られません.
7つの技術ケースのうち6つを通過したが、結局話題を解くことができなかった.🧐
let shortestWord = arr[arr.length - 2];
for (i = arr.length - 1; i >= 0; i--) {
if (arr[i].length > longestWord.length) {
longestWord = arr[i];
} else if (arr[i].length < shortestWord.length) {
shortestWord = arr[i];
}
} let newArr = arr.filter((el) => el !== longestWord);
let new2Arr = newArr.filter((el) => el !== shortestWord);
return new2Arr;
}
2)特定の文字が長い文字、短い文字であることを指定しないで、最大長さと最小長さを基準値として、長さが長さより大きい文字または小さい文字を繰り返し比較する.
3)インデックス値を個別に指定したり、すべての非インデックス値を新しい配列に追加したりする考えはすでに完了していますが、実際には実現していません.これは残念です.
質問です.📓
2 D配列(配列が要素)を入力すると、「B」位置情報を持つ配列を返す必要があります.
I/O(注意事項)入力:配列が要素の配列/arr[i]が「A」または「B」のみが要素の配列 出力:配列内の要素は「B」の位置情報(行、列)を要素とし、行、列(「行、列」)の順である.
行:「B」を要素とする配列arr[i]のインデックスi/列:arr[i]から「B」(arr[i][j])へのインデックスj 注意:arr、arr[i]の長さは多種多様/常に1つの文字列「B」 が存在する
I/O例
1)ダブルfor文を使用して配列内の配列を問合せます.クエリの値が「B」の場合、インデックス値が返されます.
国境を越える👌
文字列入力を受け入れると、文字列に次のいずれかが存在するかどうかを返す必要があります.
'a'
で始まり、'b'
で終わる長さ5の文字列.'b'
で始まり、'a'
で終わる長さ5の文字列.-I/O
let output = ABCheck('lane Borrowed');
console.log(output); // --> true
-答えは?1)すべてのテキストを小文字または大文字に変換します.
2)最初の文字がaまたはbで始まる場合、最初の文字の5番目の文字がaまたはbで終わる場合、最初の文字が最後の文字と異なる場合にのみtrueが返されます.
function ABCheck(str) {
let newStr = str.toLowerCase();
for (let i = 0; i < newStr.length; i++) {
if (newStr[i] === 'a' || newStr[i] === 'b') {
if (newStr[i+4] === 'a' || newStr[i+4] === 'b') {
if (newStr[i] !== newStr[i+4]) {
return true;
}
}
}
} return false;
}
-結果国境を越える👌
- Reference code
function ABCheck(str) {
if (str === undefined) {
return false;
}
str = str.toLowerCase();
for (let i = 4; i < str.length; i++) {
if (
(str[i] === 'a' && str[i - 4] === 'b') ||
(str[i] === 'b' && str[i - 4] === 'a')
) {
return true;
}
}
return false;
}
i - 4
の値は、最後に3番目の文字a
またはb
が現れても、 for (let i = 0; i < str.length-4; i++) {
if (
(str[i] === 'a' && str[i + 4] === 'b') ||
(str[i] === 'b' && str[i + 4] === 'a')
質問です.📓「-」を追加し、入力した連続する桁数の間で返す文字列を返す必要があります.
-I/O
let output = insertDash('454793');
console.log(output); // --> 4547-9-3
-答えは?1)パラメータ値文字列をアルファベットで配列します.
2)for文を使用して、iおよびi+1の値が奇数であるかどうかを決定する.
3)配列法
splice
'を用いて'-'を2つの奇数の間に置く.4)配列を文字列
join
に戻す方法function insertDash(str) {
let arr = str.split('');
for(let i=0; i < arr.length; i++) {
if (Number(arr[i]) % 2 === 1 && Number(arr[i+1]) % 2 === 1) {
arr.splice(i+1, 0, '-');
}
} return arr.join('');
}
-結果国境を越える👌
- Reference code
function insertDash(str) {
let result = str[0];
for (let i = 1; i < str.length; i++) {
if (Number(str[i - 1]) % 2 && Number(str[i]) % 2) {
result = result + '-';
}
result = result + str[i];
}
return result;
}
新しい変数result
の値に文字列の最初のインデックス値を割り当てて開始します.複文はインデックス1から確認します.
質問です.📓
文字列が要素の配列である場合は、最短文字列と最長文字列を削除する配列を返す必要があります.
-I/O
arr[i].length
20未満let output = removeExtremes(['a', 'b', 'c', 'def']);
console.log(output); // --> ['a', 'b']
output = removeExtremes(['where', 'is', 'the', 'longest', 'word']);
console.log(output); // --> ['where', 'the', 'word',]
-答えは?1)パラメータ値配列の一番長い文字と一番短い文字を後から指定します.
2)for文を使用してパラメータ値配列を後から問合せ、長文字より長い場合は長文字として指定します.短い文字の長さより短い場合は、短い文字として指定します.
3)配列の
filter
メソッドを使用して、長い、短い文字を除くすべての文字を新しい配列に挿入します.文字を直接指定するため、同じ長さの同じ文字はパラメータ値に入ると正しい結果が得られません.
7つの技術ケースのうち6つを通過したが、結局話題を解くことができなかった.🧐
function removeExtremes(arr) {
// TODO: 여기에 코드를 작성합니다.
// 같은 값 빈 문자열의 경우...
let longestWord = arr[arr.length - 1];let shortestWord = arr[arr.length - 2];
for (i = arr.length - 1; i >= 0; i--) {
if (arr[i].length > longestWord.length) {
longestWord = arr[i];
} else if (arr[i].length < shortestWord.length) {
shortestWord = arr[i];
}
} let newArr = arr.filter((el) => el !== longestWord);
let new2Arr = newArr.filter((el) => el !== shortestWord);
return new2Arr;
}
### - 결과
통과 못함 🙄
### - Reference code
```js
function removeExtremes(arr) {
let shortestLen = 20;
let longestLen = 0;
let shortestIdx = 0;
let longestIdx = 0;
for (let i = 0; i < arr.length; i++) {
if (arr[i].length >= longestLen) {
longestLen = arr[i].length;
longestIdx = i;
}
if (arr[i].length <= shortestLen) {
shortestLen = arr[i].length;
shortestIdx = i;
}
}
let result = [];
for (let i = 0; i < arr.length; i++) {
if (i !== shortestIdx && i !== longestIdx) {
result.push(arr[i]);
}
}
return result;
}
1)for文を最初から問い合わせる場合は、最後に検索する値を「同じ」条件で検索することもできます.2)特定の文字が長い文字、短い文字であることを指定しないで、最大長さと最小長さを基準値として、長さが長さより大きい文字または小さい文字を繰り返し比較する.
3)インデックス値を個別に指定したり、すべての非インデックス値を新しい配列に追加したりする考えはすでに完了していますが、実際には実現していません.これは残念です.
質問です.📓
2 D配列(配列が要素)を入力すると、「B」位置情報を持つ配列を返す必要があります.
I/O(注意事項)
行:「B」を要素とする配列arr[i]のインデックスi/列:arr[i]から「B」(arr[i][j])へのインデックスj
I/O例
let output = findBugInApples([['A'], ['B']]);
console.log(output); //[1, 0]
output = findBugInApples([
['A', 'A', 'A', 'A', 'A'],
['A', 'B', 'A', 'A', 'A'],
['A', 'A', 'A', 'A', 'A'],
['A', 'A', 'A', 'A', 'A'],
['A', 'A', 'A', 'A', 'A'],
]);
console.log(output); //[1, 1]
私の答え1)ダブルfor文を使用して配列内の配列を問合せます.クエリの値が「B」の場合、インデックス値が返されます.
function findBugInApples(arr) {
for (let i = 0; i < arr.length; i++) {
for (let j = 0; j < arr[i].length; j++) {
if (arr[i][j] === 'B') {
return [i, j]
}
}
}
}
-結果国境を越える👌
Reference
この問題について(Algorithm Basic_#3), 我々は、より多くの情報をここで見つけました https://velog.io/@jonghwan2_y/Algorithm-Basic3テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol