博客
关于我
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/

你可能感兴趣的文章
Netty 调用,效率这么低还用啥?
查看>>
Netty 高性能架构设计
查看>>
Netty+Protostuff实现单机压测秒级接收35万个对象实践经验分享
查看>>
Netty+SpringBoot+FastDFS+Html5实现聊天App详解(一)
查看>>
netty--helloword程序
查看>>
netty2---服务端和客户端
查看>>
【Flink】Flink 2023 Flink易用性和稳定性在Shopee的优化-视频笔记
查看>>
Netty5.x 和3.x、4.x的区别及注意事项(官方翻译)
查看>>
netty——bytebuf的创建、内存分配与池化、组成、扩容规则、写入读取、内存回收、零拷贝
查看>>
netty——Channl的常用方法、ChannelFuture、CloseFuture
查看>>
netty——EventLoop概念、处理普通任务定时任务、处理io事件、EventLoopGroup
查看>>
netty——Future和Promise的使用 线程间的通信
查看>>
netty——Handler和pipeline
查看>>
Vue输出HTML
查看>>
netty——黏包半包的解决方案、滑动窗口的概念
查看>>
Netty中Http客户端、服务端的编解码器
查看>>
Netty中使用WebSocket实现服务端与客户端的长连接通信发送消息
查看>>
Netty中实现多客户端连接与通信-以实现聊天室群聊功能为例(附代码下载)
查看>>
Netty中的组件是怎么交互的?
查看>>
Netty中集成Protobuf实现Java对象数据传递
查看>>