12
返回列表 发新帖
楼主: 小猴子
跳转到指定楼层
上一主题 下一主题
收起左侧

Quora OA 整理 附LC playground code

🔗
thuxx 2019-11-3 13:54:59 | 只看该作者
全局:
insomniadog 发表于 2019-11-3 13:42
嗯 还有 solution("31","24") ==1 应该是2 - -!
感觉这道题写起来还挺麻烦的。。。。

就是穷举所有情况 但我不记得记错了这么多…… 如果可以你改下把代码发出来看看吧 我错的应该不多
回复

使用道具 举报

🔗
insomniadog 2019-11-3 14:08:22 | 只看该作者
全局:
thuxx 发表于 2019-11-3 13:54
就是穷举所有情况 但我不记得记错了这么多…… 如果可以你改下把代码发出来看看吧 我错的应该不多
  1. int removeExactOneDigit(string str1, string str2) {
  2.                 if (str2.empty()) return 0;
  3.                 if (str1.empty()) {
  4.                         int digit = 0;
  5.                         for (auto& c : str2) {
  6.                                 if (isdigit(c)) digit++;
  7.                         }
  8.                         return str2.size() == 1 ? 0 : digit;
  9.                 }
  10.                 char& a = str1[0], &b = str2[0];
  11.                 if (a > b) {
  12.                         int ans = 0;
  13.                         if (isdigit(a))
  14.                                 ans += str1.substr(1) < str2;
  15.                         if (isdigit(b))
  16.                                 ans += str1 < str2.substr(1);
  17.                         return ans;
  18.                 }
  19.                 else if (a == b) {
  20.                         if (isdigit(a)) {
  21.                                 return (str1.substr(1) < str2) + (str1 < str2.substr(1)) + removeExactOneDigit(str1.substr(1), str2.substr(1));
  22.                         }
  23.                         else {
  24.                                 return removeExactOneDigit(str1.substr(1), str2.substr(1));
  25.                         }
  26.                 }
  27.                 int ans = 0;
  28.                 for (int i = 1, m = str1.size(); i < m; ++i) if (isdigit(str1[i])) ans++;
  29.                 for (int j = 1, n = str2.size(); j < n; ++j) if (isdigit(str2[j])) ans++;
  30.                 if (isdigit(a)) ans += (str1.substr(1) < str2);
  31.                 if (isdigit(b)) ans += (str1 < str2.substr(1));
  32.                 return ans;
  33.         }
复制代码

我c++写的,逻辑和你差不多,就稍微改了a的首字母>=b的首字母的情况

评分

参与人数 2大米 +3 收起 理由
rabbithunter1 + 2 给你点个赞!
thuxx + 1 给你点个赞!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表