博客
关于我
leetcode-------393. UTF-8 编码验证【1】
阅读量:224 次
发布时间:2019-02-28

本文共 2264 字,大约阅读时间需要 7 分钟。

  

按照要求验证即可,这里将每种字节验证当做一个原子操作,要不完成,要不失败!

代码容易,但是功能清晰。


class Solution {public:    bool validUtf8(vector
& data) { int n=data.size(); int i=0; if(n==0) return true; while(i
=0&&t<=127) //1字节验证 { i++; }else if(t>=129&&t<=223) //2字节验证 { i++; if(i==n) return false; t=data[i]%256; if(t>=128&&t<=191) {i++;} else return false; } else if(t>=224&&t<=239)//3字节验证 { i++; if(i==n) return false; t=data[i]%256; if(t>=128&&t<=191) { i++; if(i==n) return false; t=data[i]%256; } else return false; if(t>=128&&t<=191) { i++; } else return false; } else if(t>=240&&t<=247) //4字节验证 { i++; if(i==n) return false; t=data[i]%256; if(t>=128&&t<=191) { i++; if(i==n) return false; t=data[i]%256; } else return false; if(t>=128&&t<=191) { i++; if(i==n) return false; t=data[i]%256; } else return false; if(t>=128&&t<=191) {i++;} else return false; }else return false; //非法字节验证 } return true; }};

简介代码

class Solution {public:    bool validUtf8(vector
& data) { int n=data.size(); int i=0; if(n==0) return true; int leftbyte=0; while(i
0) { if(t>=128&&t<=191) {leftbyte--;continue;} else return false; } if(t>=0&&t<=127) //1字节验证 { leftbyte=0; }else if(t>=129&&t<=223) //2字节验证 { leftbyte=1; } else if(t>=224&&t<=239)//3字节验证 { leftbyte=2; } else if(t>=240&&t<=247) //4字节验证 { leftbyte=3; }else return false; //非法字节验证 } if(!leftbyte) return true; else return false; }};

 

转载地址:http://riki.baihongyu.com/

你可能感兴趣的文章
mysql数据库扫盲,你真的知道什么是数据库嘛
查看>>
mysql数据库批量插入数据shell脚本实现
查看>>
MySQL数据库操作
查看>>
MySQL数据库故障排错
查看>>
MySQL数据库无法远程连接的解决办法
查看>>
mysql数据库时间类型datetime、bigint、timestamp的查询效率比较
查看>>
MySQL数据库服务器端核心参数详解和推荐配置(一)
查看>>
mysql数据库死锁的产生原因及解决办法
查看>>
MySQL数据库的事务管理
查看>>
mysql数据库的备份与恢复
查看>>
Mysql数据库的条件查询语句
查看>>
MySQL数据库的高可用
查看>>
Mysql数据库相关各种类型的文件
查看>>
MYSQL数据库简单的状态检查(show processlist)
查看>>
MYSQL数据库简单的状态检查(show status)
查看>>
MySQL数据库系列
查看>>
MYSQL数据库自动本地/异地双备份/MYSQL增量备份
查看>>
mysql数据库表增添字段,删除字段、修改字段的排列等操作,还不快来
查看>>
MySQL数据库被黑了
查看>>
mysql数据库设计
查看>>