[伯俊]2941クロアチア文字

9483 ワード

質問リンク

初めての試み


変更したテキストをクロアチア文字に変換します.
次に、クロアチア文字に2つの数字の文字列がある場合は、「1」に置き換えます.
最終的に変換された文字列の数を返します.
const solution = () => {
  let str =  input[0].replace(/(\s*)/g, "")
  const croatia = {
    'c=': 'č',
    'c-': 'ć',
    'dz=': 'dž',
    'd-': 'đ',
    's=': 'š',
    'z=': 'ž'
  }
  const twoLength = ['dž', 'lj', 'nj']

  Object.entries(croatia).map(([key, value]) => {
    const arr = str.split(key);
    str = arr.join(value)
  })

  twoLength.map((v)=> {
    const arr = str.split(v);
    str = arr.join('1') 
  })  

  console.log(str.length)
}
solution()
  • replaceを使用する場合、正規表現を使用しない場合は、最初の1つだけが置き換えられます.
    したがって、対応するすべての文字列をsplitとjoinで置き換える必要があります.
  • 文字列の問題は空白を考慮しなければならない.
  • 他人を解く

    const fs = require("fs");
    const input = (
      process.platform === "linux"
        ? fs.readFileSync("/dev/stdin").toString()
        : `ljes=njak`
    ).trim();
    
    let croatia = ["c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z="];
    
    function solution(input) {
      for (let alphabet of croatia) {
        input = input.split(alphabet).join("Q");
      }
    
      return input.length; // return input일 경우 QeQQak를 반환한다.
    }
    
    console.log(solution(input));

    学識


    考えてみれば、クロアチア文字が1つだけでいいです.
    私はクロアチア文字に変更しなければなりません.それから2文字の文字を1つに変更して、意味のない演算をしました.
    また問題に限られて狭隘に考えているようだ.