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

网站建设一般花多少费用职业学院网站建设

网站建设一般花多少费用,职业学院网站建设,开发软件多少钱,vs音乐网站开发实例最大二进制奇数 题目描述 给你一个 二进制 字符串 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/725142/

相关文章:

  • 可信赖的常州网站建设做直播券的网站有多少
  • 网络营销案例分析pptseo策略是什么意思
  • 论坛网站建设视频青岛网站设计软件
  • 租用网站服务器价格清远医院网站建设方案
  • 房地产网站建设方案书福田所有车型
  • 网站功能描述高清视频网络服务器免费
  • 天台做网站微博推广效果怎么样
  • 苏州专门网站网站站长统计怎么做
  • 社交网站开发注意事项call_user_func_array() wordpress
  • 泉州企业免费建站个人网站设计与开发
  • 网站建设流程书籍互联网行业黑话
  • 山亭 网站建设wordpress 添加头像
  • 龙南县建设局网站新手如何做网络推广
  • 网站开发建设赚钱吗巩义旅游网站建设公司
  • 网站建设代码介绍网站顶部导航代码
  • 帮别人做网站需要什么能力sem专员
  • 无锡网站建设 app推广软件
  • 免费入驻的外贸网站网站建设怎么打开
  • 怎么做中英文网站网站建设费做什么
  • 信阳网站建设汉狮怎么样做曖視頻网站
  • 做电影电视剧网站推广移动应用开发是什么意思
  • 网站排名优化策划中山搜索引擎优化
  • 网站建设培训证书平台型网站建设预算表
  • 网站建设后压缩代码网站如何做进一步优化
  • 大型旅游网站源码 织梦襄阳网站建设楚翼网络
  • 快速搭建网站服务器做历史卷子的网站
  • 淘口令微信网站怎么做通化seo招聘
  • 帮人做传销网站违法吗深圳也放开了
  • 发布程序后网站有很多促销策略
  • 网页网站项目综合网站建设合同.doc