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

力扣题:字符的统计-12.2

力扣题-12.2

[力扣刷题攻略] Re:从零开始的力扣刷题生活

力扣题1:423. 从英文中重建数字

解题思想:有的单词通过一个字母就可以确定,依次确定即可

在这里插入图片描述

class Solution(object):
    def originalDigits(self, s):
        """
        :type s: str
        :rtype: str
        """
        char_count = {}
        t = 'egfihonsrutwvxz'
        for i in range(len(t)):
            char_count[t[i]] = 0
        for i in range(len(s)):
            if s[i] in char_count:
                char_count[s[i]] += 1
            else:
                char_count[s[i]] = 1
        result = []
        if char_count['z']!=0:
            for i in range(char_count['z']):
                result.append(0)
                temp = 'zero'
                for i in range(len(temp)):
                    char_count[temp[i]] -=1
        if char_count['x']!=0:
            for i in range(char_count['x']):
                result.append(6)
                temp = 'six'
                for i in range(len(temp)):
                    char_count[temp[i]] -=1
        if char_count['w']!=0:
            for i in range(char_count['w']):
                result.append(2)
                temp = 'two'
                for i in range(len(temp)):
                    char_count[temp[i]] -=1
        if char_count['g']!=0:
            for i in range(char_count['g']):
                result.append(8)
                temp = 'eight'
                for i in range(len(temp)):
                    char_count[temp[i]] -=1
        if char_count['s']!=0:
            for i in range(char_count['s']):
                result.append(7)
                temp = 'seven'
                for i in range(len(temp)):
                    char_count[temp[i]] -=1
        if char_count['h']!=0:
            for i in range(char_count['h']):
                result.append(3)
                temp = 'three'
                for i in range(len(temp)):
                    char_count[temp[i]] -=1
        if char_count['v']!=0:
            for i in range(char_count['v']):
                result.append(5)
                temp = 'five'
                for i in range(len(temp)):
                    char_count[temp[i]] -=1
        if char_count['f']!=0:
            for i in range(char_count['f']):
                result.append(4)
                temp = 'four'
                for i in range(len(temp)):
                    char_count[temp[i]] -=1
        if char_count['o']!=0:
            for i in range(char_count['o']):
                result.append(1)
                temp = 'one'
                for i in range(len(temp)):
                    char_count[temp[i]] -=1
        if char_count['i']!=0:
            for i in range(char_count['i']):
                result.append(9)
                temp = 'nine'
                for i in range(len(temp)):
                    char_count[temp[i]] -=1
        return ''.join(map(str, sorted(result)))
class Solution {
public:
    std::string originalDigits(std::string s) {
        std::unordered_map<char, int> charCount;
        std::string t = "egfihonsrutwvxz";

        for (char c : t) {
            charCount[c] = 0;
        }

        for (char c : s) {
            if (charCount.find(c) != charCount.end()) {
                charCount[c] += 1;
            }
        }

        std::vector<int> result;

        if (charCount['z'] != 0) {
            int count = charCount['z'];
            for (int i = 0; i < count; ++i) {
                result.push_back(0);
                std::string temp = "zero";
                for (char c : temp) {
                    charCount[c] -= 1;
                }
            }
        }

        if (charCount['x'] != 0) {
            int count = charCount['x'];
            for (int i = 0; i < count; ++i) {
                result.push_back(6);
                std::string temp = "six";
                for (char c : temp) {
                    charCount[c] -= 1;
                }
            }
        }

        if (charCount['w'] != 0) {
            int count = charCount['w'];
            for (int i = 0; i < count; ++i) {
                result.push_back(2);
                std::string temp = "two";
                for (char c : temp) {
                    charCount[c] -= 1;
                }
            }
        }

        if (charCount['g'] != 0) {
            int count = charCount['g'];
            for (int i = 0; i < count; ++i) {
                result.push_back(8);
                std::string temp = "eight";
                for (char c : temp) {
                    charCount[c] -= 1;
                }
            }
        }
        if (charCount['s'] != 0) {
            int count = charCount['s'];
            for (int i = 0; i < count; ++i) {
                result.push_back(7);
                std::string temp = "seven";
                for (char c : temp) {
                    charCount[c] -= 1;
                }
            }
        }

        if (charCount['h'] != 0) {
            int count = charCount['h'];
            for (int i = 0; i < count; ++i) {
                result.push_back(3);
                std::string temp = "three";
                for (char c : temp) {
                    charCount[c] -= 1;
                }
            }
        }

        if (charCount['v'] != 0) {
            int count = charCount['v'];
            for (int i = 0; i < count; ++i) {
                result.push_back(5);
                std::string temp = "five";
                for (char c : temp) {
                    charCount[c] -= 1;
                }
            }
        }
        
        if (charCount['f'] != 0) {
            int count = charCount['f'];
            for (int i = 0; i < count; ++i) {
                result.push_back(4);
                std::string temp = "four";
                for (char c : temp) {
                    charCount[c] -= 1;
                }
            }
        }
        if (charCount['o'] != 0) {
            int count = charCount['o'];
            for (int i = 0; i < count; ++i) {
                result.push_back(1);
                std::string temp = "one";
                for (char c : temp) {
                    charCount[c] -= 1;
                }
            }
        }

        if (charCount['i'] != 0) {
            int count = charCount['i'];
            for (int i = 0; i < count; ++i) {
                result.push_back(9);
                std::string temp = "nine";
                for (char c : temp) {
                    charCount[c] -= 1;
                }
            }
        }

        std::sort(result.begin(), result.end());

        std::string resultString;
        for (int digit : result) {
            resultString += std::to_string(digit);
        }

        return resultString;
    }
};

http://www.kler.cn/news/155040.html

相关文章:

  • C#-串口通信入门及进阶扩展
  • linux的ping命令
  • vue 生命周期
  • 461. 汉明距离
  • TCP三次握手与四次挥手
  • 爬虫-xpath篇
  • 计算机组成学习-计算机系统概述总结
  • DOM 事件的注册和移除
  • 深度学习好文记录,反复学习
  • Ext4文件系统解析(三)
  • redis性能测试
  • 计算机网络:应用层(上篇)
  • 【广州华锐视点】广东3D展厅开发服务找广州华锐视点,打造未来展览新体验!
  • Java笔记
  • C#编程题分享(5)
  • 自定义类型:结构体(自引用、内存对齐、位段(位域))
  • 【java+vue+微信小程序项目】从零开始搭建——健身房管理平台(2)后端跨域、登录模块、springboot分层架构、IDEA修改快捷键、vue代码风格
  • Python 简介和用途
  • springcloud==ribbon
  • C/C++ 谓词 lambda表达式
  • 自定义Vue的DockPanel-Layout
  • 深度学习记录--logistic回归损失函数向量化实现
  • LLM;超越记忆《第 2 部分 》
  • Echarts地图registerMap使用的GeoJson数据获取
  • Spring boot命令执行 (CVE-2022-22947)漏洞复现和相关利用工具
  • 高斯日记(cpp+java)
  • 线程安全的问题以及解决方案
  • 【重点】【双指针】15. 三数之和
  • Vue diff 算法探秘:如何实现快速渲染
  • Gson的用法详解