博客
关于我
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学习总结(5)——MySql常用函数大全讲解
查看>>
Mysql学习总结(60)——并发量大、数据量大的互联网业务数据库设计规范总结
查看>>
Mysql学习总结(61)——MySQL优化之DBA级优化整理汇总
查看>>
Mysql学习总结(62)——MySQL连接com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link问题
查看>>
Mysql学习总结(63)——Mysql数据库架构方案选择与分析
查看>>
Mysql学习总结(64)——Mysql配置文件my.cnf各项参数解读
查看>>
Mysql学习总结(65)——项目实战中常用SQL实践总结
查看>>
Mysql学习总结(66)——设置MYSQL数据库编码为UTF-8
查看>>
Mysql学习总结(67)——MYSQL慢查询日志
查看>>
Mysql学习总结(68)——MYSQL统计每天、每周、每月、每年数据 SQL 总结
查看>>
Mysql学习总结(69)——Mysql EXPLAIN 命令使用总结
查看>>
Mysql学习总结(6)——MySql之ALTER命令用法详细解读
查看>>
Mysql学习总结(70)——MySQL 优化实施方案
查看>>
Mysql学习总结(71)——MySQL 重复记录查询与删除总结
查看>>
Mysql学习总结(71)——数据库介绍(MySQL安装 体系结构、基本管理)再回顾
查看>>
Mysql学习总结(72)——MySQL 开发者开发,设计规范再总结
查看>>
Mysql学习总结(73)——MySQL 查询A表存在B表不存在的数据SQL总结
查看>>
Mysql学习总结(74)——慢SQL!压垮团队的最后一根稻草!
查看>>
Mysql学习总结(75)——并发量大、数据量大的互联网业务数据库设计军规
查看>>
Mysql学习总结(76)——MySQL执行计划(explain)结果含义总结
查看>>