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

个人的网站建设目标网站开发相关期刊

个人的网站建设目标,网站开发相关期刊,网站制作公司技术部门,网站建设的相关技术最大二进制奇数 题目描述 给你一个 二进制 字符串 s #xff0c;其中至少包含一个 1 。 你必须按某种方式 重新排列 字符串中的位#xff0c;使得到的二进制数字是可以由该组合生成的 最大二进制奇数 。 以字符串形式#xff0c;表示并返回可以由给定组合生成的最大二进…最大二进制奇数 题目描述 给你一个 二进制 字符串 s 其中至少包含一个 1 。 你必须按某种方式 重新排列 字符串中的位使得到的二进制数字是可以由该组合生成的 最大二进制奇数 。 以字符串形式表示并返回可以由给定组合生成的最大二进制奇数。 注意 返回的结果字符串 可以 含前导零。 示例 1 输入s 010 输出001 解释因为字符串 s 中仅有一个 1 其必须出现在最后一位上。所以答案是 001 。示例 2 输入s 0101 输出1001 解释其中一个 1 必须出现在最后一位上。而由剩下的数字可以生产的最大数字是 100 。所以答案是 1001 。 解题思路  贪心算法 由于是二进制那么 temp 中的每一位不是 0 就是 1 。根据题意可知需要返回的是最大的二进制奇数所以返回结果的最后一位一定是 1 。按照贪心算法的原则要返回最大二进制奇数需要将剩下的 1 放置在字符串的最前面。 1. 先统计字符串中 1 的数量 。 class Solution {public String maximumOddBinaryNumber(String s) {// 统计字符串中 1 的数量int temp 0;for(int i 0; i s.length(); i){if((s.charAt(i) - 0) 1){temp 1;}}} } 2. 使用 StringBuilder 构造一个字符串用来存储输出结果。 class Solution {public String maximumOddBinaryNumber(String s) {// 统计字符串中 1 的数量int temp 0;for(int i 0; i s.length(); i){if((s.charAt(i) - 0) 1){temp 1;}}// 用于接收输出结果的字符串StringBuilder str new StringBuilder();} } 3. 减去最后一位的 1 后将剩下的 1 排在字符串的最前面。 class Solution {public String maximumOddBinaryNumber(String s) {// 统计字符串中 1 的数量int temp 0;for(int i 0; i s.length(); i){if((s.charAt(i) - 0) 1){temp 1;}}// 用于接收输出结果的字符串StringBuilder str new StringBuilder();// 排入 1 for(int i 0; i temp - 1; i){str.append(1);}} } 4. 将剩下的 0 补上。 class Solution {public String maximumOddBinaryNumber(String s) {// 统计字符串中 1 的数量int temp 0;for(int i 0; i s.length(); i){if((s.charAt(i) - 0) 1){temp 1;}}// 用于接收输出结果的字符串StringBuilder str new StringBuilder();// 排入 1 for(int i 0; i temp - 1; i){str.append(1);}// 补上 0 for(int i 0; i s.length() - temp; i){str.append(0);}} } 5. 最后补上最后一位的 1 再输出结果就OK啦。 class Solution {public String maximumOddBinaryNumber(String s) {// 统计字符串中 1 的数量int temp 0;for(int i 0; i s.length(); i){if((s.charAt(i) - 0) 1){temp 1;}}// 用于接收输出结果的字符串StringBuilder str new StringBuilder();// 排入 1 for(int i 0; i temp - 1; i){str.append(1);}// 补上 0 for(int i 0; i s.length() - temp; i){str.append(0);}// 最后一位 1 str.append(1);return str.toString();} } 复杂度分析 时间复杂度O(n) 空间复杂度O(1)  其中 n 表示给定字符串的长度 。 代码优化 上述代码虽然能够完成题目要求但是写的较为繁琐有以下可优化的点 1. 统计数字 1 的数量可以优化为 class Solution {public String maximumOddBinaryNumber(String s) {// 统计字符串中 1 的数量int temp 0;for(int i 0; i s.length(); i){temp s.charAt(i) - 0;}} } 2. 利用 repeat 方法直接返回排好序的结果字符。 class Solution {public String maximumOddBinaryNumber(String s) {// 统计字符串中 1 的数量int temp 0;for(int i 0; i s.length(); i){temp s.charAt(i) - 0;}// 返回结果字符return 1.repeat(Math.max(0, temp - 1)) 0.repeat(Math.max(0, s.length() - temp)) 1;} } 当然这样做只是简化了代码因为反复调用 repeat 方法导致程序的执行时间会变长。
http://www.zqtcl.cn/news/354398/

相关文章:

  • 做电影网站侵权哈尔滨网站开发
  • 中国联通网站备案系统Wordpress建立空白页面
  • 郑州网站建设 郑州网站制作wordpress删除模板
  • 北京网站设计培训wordpress vps 伪静态
  • 做网站和编程有关系吗seo百家外链网站
  • 网站新闻怎么写最新事故案例100例
  • 网站中的表格seo宣传网站
  • 河南锦路路桥建设有限公司网站网站建设会考什么
  • 高校网站建设研究意义餐饮vi设计案例
  • 触屏手机网站网站建设功能模块价格
  • 类似携程网的网站wordpress文章摘要调用
  • 好网站建设公司开发方案联盟营销的网络营销方式
  • logo免费生成网站洛阳网络建站公司
  • 建设工程部网站百度指数功能
  • 个人网站 商业时事新闻2022最新10月
  • 不会代码 怎么做网站网站视频管理系统
  • 网站空间 流量网上卡片制作
  • 网站排名seo软件机关网站源码
  • 网站手机端页面怎么做手机之家
  • 成都电子商务网站大庆城市投资建设网站
  • 电子商务网站费用wordpress 怎么手动更新
  • 中国空间站设计在轨飞行多少年南昌网站建设风格
  • 用php写的网站有哪些暖暖 视频 在线 观看 高清
  • 云空间网站怎么做海南旅游网网页制作
  • 常宁网站免费的ai作图软件
  • 网站建设讲师招聘如何做电商产品推广
  • 让百度收录网站网站开发流程进度表
  • 有几个网站能在百度做推广产品开发管理系统
  • 一个网站项目的价格表dz论坛seo
  • 企业做网站要多少钱哪个网站做动图