首页 > 其他分享 >816. 模糊坐标

816. 模糊坐标

时间:2022-11-07 19:11:25浏览次数:73  
标签:lefts res 模糊 小数点 逗号 坐标 816

816. 模糊坐标

我们有一些二维坐标,如 "(1, 3)" 或 "(2, 0.5)",然后我们移除所有逗号,小数点和空格,得到一个字符串S。返回所有可能的原始字符串到一个列表中。

原始的坐标表示法不会存在多余的零,所以不会出现类似于"00", "0.0", "0.00", "1.0", "001", "00.01"或一些其他更小的数来表示坐标。此外,一个小数点前至少存在一个数,所以也不会出现“.1”形式的数字。

最后返回的列表可以是任意顺序的。而且注意返回的两个数字中间(逗号之后)都有一个空格。

示例 1:

  • 输入: "(123)"
  • 输出: ["(1, 23)", "(12, 3)", "(1.2, 3)", "(1, 2.3)"]

题目链接

模拟

可以遍历逗号的位置将字符串划分为两部分。然后分别对两部分进行处理:

  • 1.无小数点。如果如果只有一位或者第一位不为0。即为合法数
  • 2.有小数点。根据题目要求“原始的坐标表示法不会存在多余的零,所以不会出现类似于"00", "0.0", "0.00", "1.0", "001", "00.01"或一些其他更小的数来表示坐标。”。可以分为小数点左右两部分来讨论
    • 左边部分,考虑是否存在前导零即可。即left[0]=='0'为不合法数
    • 右边部分,判断最后一个数是否为零即可
class Solution {
public:
    //添加小数点
    vector<string>get_part(string s){
        vector<string>res;
        if(s.size()==1||s[0]!='0'){
            res.push_back(s);
        }
        for(int i=1;i<s.size();i++){
            string left=s.substr(0,i);
            string right=s.substr(i,s.size()-i+1);
            if(i!=1&&left[0]=='0')  continue;
            if(right.back()=='0')   continue;
            res.push_back(left+'.'+right);
        }
        return res;
    }

    vector<string> ambiguousCoordinates(string s) {
        vector<string>res;
        //枚举逗号位置
        for(int i=1;i<s.size()-2;i++){
            string pre_s=s.substr(1,i);
            string ord_s=s.substr(i+1,s.size()-i-2);
            vector<string>lefts;
            vector<string>rights;
            lefts=get_part(pre_s);
            rights=get_part(ord_s);
            if(!lefts.empty()&&!rights.empty())
                for(auto left:lefts)
                    for(auto right:rights)
                        res.push_back('('+left+", "+right+')');
        }
        return res;
    }
};

标签:lefts,res,模糊,小数点,逗号,坐标,816
From: https://www.cnblogs.com/SkyDusty/p/16867056.html

相关文章

  • 模糊坐标
    题目我们有一些二维坐标,如 "(1,3)" 或 "(2,0.5)",然后我们移除所有逗号,小数点和空格,得到一个字符串S。返回所有可能的原始字符串到一个列表中。原始的坐标表示法不会......
  • 封装MyBatis输出结果-简单类型,对象类型,map,resulemap,模糊查询
    封装MyBatis输出结果resultType:执行sql得到ResultSet转换的类型,使用类型的完全限定名或别名。注意如果返回的是集合,那应该设置为集合包含的类型,而不是集合本身......
  • 816. 模糊坐标 ----- 分而治之思路、back()、empty()、substr()用法
    我们有一些二维坐标,如 "(1,3)" 或 "(2,0.5)",然后我们移除所有逗号,小数点和空格,得到一个字符串S。返回所有可能的原始字符串到一个列表中。原始的坐标表示法不会存在......
  • Luogu P5816[CQOI2010]内部白点题解
    LinkLuoguP5816Description一个平面直角坐标系内有\(n\)个黑点,其余点为白点,将会进行若干次变换,每次变换会把上下左右方向都有黑点的白点变成黑点,直到找不到符合要求......
  • P8816 [CSP-J 2022] 上升点列(民间数据)
    #include<bits/stdc++.h>usingnamespacestd;intn,m,dp[505][205],ans,c[505][505],rk,ri,rlt;structNode{ intx,y;}a[505];boolcmp(Nodep,Nodeq){ if(p.x......
  • maven依赖坐标实现
    1.在pom.xml编写<dependencies>标签2.在此标签中使用<dependency>引入坐标3.定义坐标的groupld,artifactld,version4.点击刷新按钮,是坐标生效<dependencies><depe......
  • SQL模糊查询
    在SQLServer中一般查询数据库我们用到的是完整查询,在查询的时候是需要我们把全部完整的条件都输入进来才可以查询到结果的,如果说你查询的条件有一点的不对就不会查询到结......
  • 在matlab中使用模糊编辑器实现模糊控制器的设计详解
    目录一、理论基础二、核心程序三、测试结果一、理论基础所谓模糊控制技术是指通过模糊集合和模糊逻辑等原理,并且和经典的控制理论相结合,并通过模拟人类的思考方式,对一......
  • python画图 去除横纵坐标值;设置横纵坐标名称;设置坐标轴刻度大小
    1.去除横纵坐标值plt.xticks([])#去掉横坐标值plt.yticks([])#去掉纵坐标值2.设置横纵坐标名称ax1.set_xlabel('Outputclass',fontsize=24)#设置x轴名称a......
  • 模糊查询并且对HBase进行CRUD的操作
     我这是两次的实验用的一个项目,第二次的实验是在第一次上的实验的基础上增加而来     pom.xml<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="......