首页 > 试题广场 >

获取字符串的长度

[编程题]获取字符串的长度
  • 热度指数:33785 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
如果第二个参数 bUnicode255For1 === true,则所有字符长度为 1
否则如果字符 Unicode 编码 > 255 则长度为 2
示例1

输入

'hello world, 牛客', false

输出

17
function strLength(s, bUnicode255For1) {
  if(bUnicode255For1==true){
    return s.length
  }
  if(bUnicode255For1==false){
    var changdu=0
         for(var i=0;i<s.length;i++){
           if(s.charCodeAt(i)>255){
                changdu=changdu+2
           }
           else {
             changdu++
           }
         }
  }
  return changdu
}
发表于 2023-04-10 16:02:18 回复(0)
function strLength(s, bUnicode255For1) {
 if (bUnicode255For1) {//仅仅判断是否是true还是false
        return s.length;//true直接返回长度
    } else {
        for (var i = 0, length = 0; i < s.length; i++) {
            if (s.charCodeAt(i) > 255) {//判断每一个字符的Unicode编码如果大于255时字符串长度加2
                length = length + 2;
            } else {
                length++;
            }
        }
        return length;
    }
 }
                 
            
        


发表于 2022-09-26 17:39:12 回复(0)
省代码.jpg
function strLength(s, bUnicode255For1) {
    return bUnicode255For1?s.length:s.split('').reduce((a,b)=>a+(b.charCodeAt(0)>255?2:1),0)
}


发表于 2022-09-22 20:31:43 回复(0)
function strLength(s, bUnicode255For1) {
    if (bUnicode255For1) {
        return s.length
    } else {
        let strArr = s.split('')
        return strArr.reduce((sum, value) => {
            let l = value.charCodeAt() > 255 ? 2 : 1;
            return sum += l
        }, 0)
    }
}
发表于 2022-09-18 22:05:19 回复(0)
function strLength(s, bUnicode255For1) {
    if (!!bUnicode255For1) {
        return s.length
    }
    return s.length + [...s].filter(v => v.charCodeAt() > 255).length
}
发表于 2022-09-16 13:57:16 回复(0)
function strLength(s, bUnicode255For1) {
  if(bUnicode255For1){
    return s.length
  }
  let arr=s.split("")
 return arr.reduce((acc,item)=>{
   acc +=item.charCodeAt()>255?2:1
   return acc
  },0)
}

发表于 2022-08-10 09:42:00 回复(0)
function strLength(s, bUnicode255For1) {
    if(bUnicode255For1){
        return s.length;
    }
    let sum =0;
    for(let i=0;i<s.length;i++){
        if(s[i].charCodeAt()>255){
            sum +=2
        }else{
            sum++
        }
    }
    return sum;
}
发表于 2022-07-15 15:13:36 回复(0)
function strLength(s, bUnicode255For1) {
    let len = 0
    for(let i = 0;i < s.length;i++){
        len += s[i].charCodeAt() > 255 && !bUnicode255For1 ? 2 : 1
    }
    return len
}


发表于 2022-07-06 16:32:19 回复(0)
function strLength(s, bUnicode255For1) {
    let str = s.split('')
    let num = 0
    if(bUnicode255For1 === true){
        num = str.length
    }else{
        for(let i=0;i<str.length;i++){
            num += s.charCodeAt(i)>255 ? 2 : 1
        }
    }
    return num
}

发表于 2022-06-30 18:00:38 回复(0)
function strLength(s, bUnicode255For1) {
    var Len = 0;
    if(bUnicode255For1){
        return s.length;
    }else{
        for(var i = 0;i< s.length;i++){
            if(s.charCodeAt(i) > 255){
                Len +=2;
            }else{
                Len +=1;
            }
        }
        return Len;
    }
}
 console.log( strLength('牛客, hello world', false))

发表于 2022-04-01 15:37:52 回复(0)
function strLength(s, bUnicode255For1) {
    if(bUnicode255For1){
        return s.length;
    }else{
        var i = 0;
        Array.from(s).forEach(item=>{
            item.charCodeAt()>255? i+=2:i++;
        })
        return i;
    }
}

发表于 2022-02-14 17:49:00 回复(0)
function strLength(s, bUnicode255For1) {
    var num = 0;
    if (s === '') {
        return 0;
    }
    if (bUnicode255For1) {
        return s.length;
    } else {
        for (let i = 0; i < s.length; i++) {
            if (s.charCodeAt(i) > 255) {
                num += 2;
            } else {
                num += 1;
            }
        }
        return num;
    }
}

发表于 2021-12-30 21:58:10 回复(0)
function strLength(s, bUnicode255For1) {
    if (bUnicode255For1) return s.length
    let res = 0
    for (let i in s) {
        if (s.charCodeAt(i) > 255) res += 2
        else res++
    }
    return res
}


发表于 2021-12-05 05:00:44 回复(0)
function strLength(s, bUnicode255For1) {
    var sum = 0;
    if(bUnicode255For1 === true){
        return s.length;
    } else{
        for(let i=0; i<s.length; i++){
            if(s.chartCodeAt(i)>255){
                sum += 2;
            }else{
                sum += 1;
            }
        }
        return sum;
    }
}
不明白为什么不通过,求指点

发表于 2021-10-17 11:22:27 回复(0)
charCodeAt() 方法可返回指定位置的字符的 Unicode 编码
发表于 2021-10-08 20:57:28 回复(0)
function strLength(s, bUnicode255For1) {
    if(bUnicode255For1) return s.length;
    let count = 0;
    for(let i=0; i<s.length; ++i)
        if(s[i].charCodeAt() > 255) ++count;
    return s.length+count;
}

发表于 2021-09-09 16:08:31 回复(0)
function strLength(s, bUnicode255For1) {
    let result = s.length
    
    if (!bUnicode255For1) {
        for (let i = 0; i < s.length; i++) {
            if (s.charCodeAt(i) > 255) {
                result++
            }
        }
    }
    
    return result
}

发表于 2021-08-07 16:32:05 回复(0)