当前位置: 首页 > news >正文

树|regex正则

lc2047

可以三解,复习了:模拟 状态机 正则

正则+istringstream处理

这才是真正的代码😭

正则表达式 (([a-z]+-)?[a-z]+)?[!,.]? 的结构和匹配逻辑是:
- 核心部分 ([a-z]+-)?[a-z]+ :匹配“纯小写字母”(如 abc )或“小写字母+连字符+小写字母”(如 abc-def ,连字符前后至少1个字母);
- 外层 (...)? :让核心部分可选(但结合实际场景,通常是必填,避免空串);
- 末尾 [!,.]? :匹配0或1个句末标点( ! / , / . )。
整体用于匹配合法单词:允许“纯字母”“字母-连字符-字母”,且可带1个句末标点

#include <regex>

class Solution {

public:

int countValidWords(string sentence) {

regex r1("(([a-z]+-)?[a-z]+)?[!,.]?");

//定义匹配pattern

istringstream iss(sentence);

int ans=0;

string word;

while(iss>>word){

if(regex_match(word,r1)){

ans++;

}

}

return ans;

}

};

判断句子中每个单词是否合法(合法是“纯字母”“字母-字母”或这两类加句末标点),统计合法单词数

状态机 优雅的转移设计
-1:错误
0:空格
1:字母
2:字母+链接符
3:字母+链接符+字母
4:结尾

状态注意的梳理 可以画图枚举 画画就出来啦

class Solution {

public:

int countValidWords(string sentence)

{

int state=0,res=0;

sentence+=' ';

for(auto& c:sentence){

if(c==' '){

if(state==1||state==3||state==4)res++;

state=0; //重置

}

else if('a'<=c&&c<='z'){

if(state==0||state==2)state++;

else if(state==1||state==3)continue;

else state=-1;

}

else if(c=='-'){

if(state==1)state=2;

else state=-1;

}

else if(c=='.'||c==','||c=='!'){

if(state==0||state==1||state==3)

state=4;

else state=-1;

}

else state=-1;

}

return res;

}

};

lc1422

注意 覆盖所有分割点

class Solution {

//左0右1

public:

int maxScore(string s)

{

int n=s.size();

vector<int> p(n+1);

for(int i=1;i<=n;i++)

p[i]=p[i-1]+(s[i-1]-'0');

int ret=0;

for(int i=1;i<n;i++)

{

int f=i-p[i];

int b=p[n]-p[i];

ret=max(ret,f+b);

}

return ret;

}

};

lc563

int dfs

class Solution
{
public:
int findTilt(TreeNode* root)
{
int ret=0;
auto dfs=[&](this auto&& dfs,TreeNode* node)->int
{
if(!node) return 0;
int l=dfs(node->left);
int r=dfs(node->right);

ret+=abs(l-r);
return l+r+node->val;
};
dfs(root);
return ret;
}
};

http://www.cnnetsun.cn/news/93943.html

相关文章:

  • XUnity自动翻译插件:零基础入门到实战精通指南
  • OBS直播优化全攻略:从新手到专家的配置进阶之路
  • 面试问题预测:LobeChat模拟真实考场
  • LobeChat能否对接冥王星地形图?柯伊伯带天体特征科普
  • TegraRcmGUI:Nintendo Switch自定义payload注入的图形化解决方案
  • FlutterOpenHarmony商城App倒计时组件开发
  • Beyond Compare 5终极激活指南:3分钟快速生成永久授权密钥
  • 5分钟搞定Android投屏:QtScrcpy零门槛操作指南
  • Windows 11安装蓝屏终结者:MediaCreationTool.bat实战指南
  • BGE-Large-zh-v1.5终极指南:快速上手文本嵌入模型部署
  • tensorflow 零基础吃透:tf.sparse.SparseTensor 与核心 TensorFlow API 的协同使用
  • tensorflow 零基础吃透:TensorFlow 张量切片与数据插入(附目标检测 / NLP 实战场景)
  • windows用户态到内核态
  • 嵌入式系统(基于FreeRTOS)串口命令行调试工具
  • Qwen3-VL-8B中文多模态实测:懂语境更懂中国用户
  • Axios网络请求优化(缓存)
  • 通过短时倒谱(Cepstrogram)计算进行时-倒频分析研究附Matlab代码
  • 无人机启用的无线传感器网络中的节能数据收集附Matlab代码
  • [特殊字符]️ 羽毛球检测数据集介绍-1686张图片 运动赛事分析 智能健身设备 自动裁判系统 体育视频内容分析 机器人运动训练
  • AI 论文辅助对决!虎贲等考 AI:全流程赋能,稳坐毕业论文 “最强辅助” 宝座
  • 查重 + AIGC 双检测通关!虎贲等考 AI 降重功能,解锁论文原创新境界
  • BetterNCM插件安装终极指南:解锁网易云音乐隐藏功能
  • 百度网盘直链解析:告别龟速下载的技术革命
  • TranslucentTB启动故障修复指南:快速解决任务栏透明工具无法运行问题
  • 速藏!AI大模型工程师进阶手册:从入门到实战的全攻略
  • NVIDIA Profile Inspector终极优化指南:解锁显卡隐藏性能
  • Ubuntu执行apt-get update报错:W: 无法下载 http://cn.mirrors.ustc.edu.cn/ubuntu/dists/bionic/InRelease 连接失败
  • LobeChat能否对接古籍数据库?中华传统文化智能问答系统
  • 微信多设备登录难题的终极解决方案
  • PlayCover深度解密:在Mac上畅享iOS应用的终极方案