文字长度check(全半角)

本文详细解释了如何通过字符编码来计算字符串中的字符数量,包括对不同编码方式的处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       function CountLength(str) {
            var r = 0;
            for (var i = 0; i < str.length; i++) {
                var c = str.charCodeAt(i);
                // Shift_JIS: 0x0 乣 0x80, 0xa0 , 0xa1 乣 0xdf , 0xfd 乣 0xff
                // Unicode : 0x0 乣 0x80, 0xf8f0, 0xff61 乣 0xff9f, 0xf8f1 乣 0xf8f3
                if ((c >= 0x0 && c < 0x81) || (c == 0xf8f0) || (c >= 0xff61 && c < 0xffa0) || (c >= 0xf8f1 && c < 0xf8f4)) {
                    r += 1;
                } else {
                    r += 2;
                }
            }
            return r;
        }
c++实现 ## 题目背景 很遗憾,您的文章不符合推荐标准。原因是:**中文**与**英文、数字或公式**之间以半角空格隔开,但**中文标点符号**与**英文、数字或公式**之间不应有空格。 ## 题目描述 有一个长度为 $n$ 的 Markdown 文章,你需要判断其是否满足: - **中文**与**英文、数字或公式**之间以半角空格隔开,但**中文标点符号**与**英文、数字或公式**之间不应有空格。 也就是说,不存在相邻的**中文**与**英文、数字或公式**。不存在一对**中文标点符号**与**英文、数字或公式**之间**只有**空格(无论几个)。 如果满足则这篇文章无需打回,输出 ```Yes```。 否则这篇文章需要被打回,输出 ```No```。 为了方便描述,整个文章保证只使用 ```a@1$,_``` 中的字符组成。其中: - `a` 表示文章中的英文字母。 - `@` 表示文章中的中文。 - `1` 表示文章中的数字。 - `$` 表示文章中的公式。**需要注意,这里与传统的 `$` 的意义并不相同。** - `,` 表示文章中的中文标点。 - `_` 表示文章中的空格。 ## 输入格式 仅一行,一个长度为 $n$ 的仅由 ```a@1$,_``` 组成的字符串,表示该篇 Markdown 文章。 ## 输出格式 仅一行,一个字符串,如果该文章无需打回,输出 ```Yes```,否则输出 ```No```。 ## 输入输出样例 #1 ### 输入 #1 ``` a@1$,_ ``` ### 输出 #1 ``` No ``` ## 输入输出样例 #2 ### 输入 #2 ``` a,@_1$,_ ``` ### 输出 #2 ``` Yes ``` ## 输入输出样例 #3 ### 输入 #3 ``` ,__a ``` ### 输出 #3 ``` No ``` ## 说明/提示 **【样例解释 #1】** 唯一的中文与英文、数字相邻,不满足要求。故是一篇需要被打回的文章。 **【样例解释 #2】** 有一个中文,均满足**中文**与**英文、数字或公式**之间以半角空格隔开。共有两个中文标点符号,均满足**中文标点符号**与**英文、数字或公式**之间不应有空格。故文章无需打回。 **【样例解释 #3】** 唯一的中文标点符号和英文之间只有空格,不满足要求。故是一篇需要被打回的文章。 **【数据范围】** 对于 $20\%$ 的数据,$n\le 3$。 对于另外 $20\%$ 的数据,不存在公式。 对于另外 $20\%$ 的数据,不存在中文。 对于部的数据,保证 $1\le n\le 100$,保证字符串仅由 ```a@1$,_``` 组成。f
最新发布
03-31
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值