news 2026/4/23 11:14:58

leetcode 困难题 761. Special Binary String 特殊的二进制序列

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
leetcode 困难题 761. Special Binary String 特殊的二进制序列

Problem: leetcode 困难题 761. Special Binary String 特殊的二进制序列

解题过程

这题目的描述有问题,下面注释掉的就是递归做的,这是我的理解:第一次交换以后的字符串接着做第二次交换,接着做第三次交换,每次递归的输入长度都是最开始输入的s.size(),而不是分片以后的长度,然后拿到最大的字符串

看了官方题解,感觉和题目的描述不太相同,官方题解使用了分片,也就是找到这个字符串所有的分片然后重排合并,并不是交换一次以后继续递归

Code

class Solution { public: string makeLargestSpecial(string s) { if(s.size() <= 2) return s; int cnt = 0, left = 0; vector<string> subs; for(int i = 0; i < s.size(); i++) { if(s[i]=='1') cnt++; else { cnt--; if(cnt==0) { subs.push_back("1" + makeLargestSpecial(s.substr(left + 1, i - left - 1)) + "0"); left = i + 1; } } } sort(subs.begin(), subs.end(), greater<string>()); string tmp; for(int i = 0; i < subs.size(); i++) { tmp += subs[i]; } return tmp; } }; /* class Solution { public: string ret; bool check(string tg) { int a = 0, z = 0; for(char& c : tg) { if(c=='1') a++; else z++; if(a < z) return false; } return true; } unordered_set<string> te; string makeLargestSpecial(string s) { for(int w = 0; w < s.size(); w++) { while(w < s.size() && s[w]=='0') w++; if(w>= s.size()) continue; int a = 0, z = 0; string s1, s2, t1, t2; for(int i = w; i < s.size(); i++) { if(s[i]=='1') a++; else z++; if(a == z) { int aa = 0, zz = 0, ww = i + 1; while(ww < s.size() && s[ww]=='0') ww++; if(ww < s.size()) { for(int j = ww; j < s.size(); j++) { if(s[j]=='1') aa++; else zz++; if(aa == zz) { t1 = s1 = s.substr(w, i - w + 1); t2 = s2 = s.substr(ww, j - ww + 1); if(s1.size()!=0 && s2.size()!=0 && s1!=s2 && check(t1) && check(t2)) { string prefix, tail, mid, now, rec; prefix = s.substr(0, w); if(j+1 < s.size()) tail = s.substr(j+1); if(i+1 < ww) mid = s.substr(i+1, ww - i - 1); if(s1.size() < s2.size()) { s1 += string(s2.size()-s1.size(), '0'); } else { s2 += string(s1.size() - s2.size(), '0'); } if(s1 < s2) { now = prefix + t2 + mid + t1 + tail; if(check(now)) { ret = max(ret, now); // if(now > s) { if(te.find(ret)== te.end()) { te.insert(ret); rec = makeLargestSpecial(ret); ret = max(ret, rec); } // } } } } } } } } } } return ret.size()==0? s:ret; } }; */
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 11:11:29

大话存储(通俗解释版)(七)系统与系统之间的语言:OSI模型

目录 第7章 熟读宝典——系统与系统之间的语言&#xff1a;OSI模型 开篇&#xff1a;从人类社交到机器对话 7.1 人类模型与计算机模型的对比剖析 7.1.1 人类通信的隐式分层模型 7.1.2 计算机网络的显式OSI模型 7.1.3 个体间交流是群体进化的动力 7.2 OSI模型的七个层次&a…

作者头像 李华
网站建设 2026/4/23 11:14:04

融合 Dify 与数眼智能:打造大学生专属 AI 模拟面试助手全攻略

在就业竞争白热化的当下&#xff0c;面试表现成为大学生求职成功的关键变量。多数学生因缺乏实战经验、不熟悉岗位需求、紧张导致发挥失常等问题错失机会。传统模拟面试受时间、人力限制难以反复练习&#xff0c;而通过 Dify 平台的灵活搭建能力&#xff0c;结合数眼智能在语音…

作者头像 李华
网站建设 2026/4/23 4:04:08

jdjxjfjcjc

xn&#xff0c;jxjxcj

作者头像 李华
网站建设 2026/4/19 2:56:27

前端行情太差了,6年前端经验,找了三个月工作,都没找到

2025开年&#xff0c;AI技术打得火热&#xff0c;正在改变前端人的职业命运&#xff1a; 阿里云核心业务全部接入Agent体系&#xff1b; 字节跳动30%前端岗位要求大模型开发能力&#xff1b; 腾讯、京东、百度开放招聘技术岗&#xff0c;80%与AI相关…… 大模型正在重构技术开发…

作者头像 李华
网站建设 2026/4/23 8:55:11

神经-符号集成系统在自然语言理解中的应用

神经-符号集成系统在自然语言理解中的应用 关键词:神经-符号集成系统、自然语言理解、深度学习、符号推理、知识表示 摘要:本文深入探讨了神经-符号集成系统在自然语言理解中的应用。首先介绍了神经-符号集成系统的背景,包括目的、预期读者、文档结构和相关术语。接着阐述了…

作者头像 李华
网站建设 2026/4/23 8:56:12

Open-AutoGLM性能瓶颈突破(3个被忽视的关键参数调优)

第一章&#xff1a;Open-AutoGLM性能瓶颈的行业背景与挑战随着大语言模型在自动化推理、代码生成和自然语言理解等领域的广泛应用&#xff0c;Open-AutoGLM作为开源自动推理框架&#xff0c;逐渐成为企业与研究机构的核心工具之一。然而&#xff0c;在高并发、复杂任务场景下&a…

作者头像 李华