当前位置:网站首页>Leetcode simple question ring and rod

Leetcode simple question ring and rod

2022-07-05 22:03:00 ·Starry Sea

subject

A total of n Annulus , The color of the ring can be red 、 green 、 One of the blue . These rings are distributed across 10 The root number is 0 To 9 On the rod .
Give you a length of 2n String rings , It means n The distribution of rings on the rod .rings Every two characters in the form of a The color position is right , Used to describe each ring :
The first i Right first The character represents the second i A ring Color (‘R’、‘G’、‘B’).
The first i Right the second The character represents the second i A ring Location , That is, on which rod (‘0’ To ‘9’).
for example ,“R3G2B1” Express : share n == 3 Annulus , The red ring is numbered 3 On the rod , The green ring is numbered 2 On the rod , The blue ring is numbered 1 On the rod .
Find all sets All three colors The rod of the ring , And return the number of such rods .
Example 1:
Input :rings = “B0B6G0R6R0R6G9”
Output :1
explain :

  • Number 0 On the pole 3 Annulus , Gather all colors : red 、 green 、 blue .
  • Number 6 On the pole 3 Annulus , But only red 、 Blue two colors .
  • Number 9 There is only 1 A green ring .
    therefore , The number of rods with all three color rings is 1 .
    Example 2:
    Input :rings = “B0R0G0R9R0B0G0”
    Output :1
    explain :
  • Number 0 On the pole 6 Annulus , Gather all colors : red 、 green 、 blue .
  • Number 9 There is only 1 A red ring .
    therefore , The number of rods with all three color rings is 1 .
    Example 3:
    Input :rings = “G4”
    Output :0
    explain :
    Only one ring was given , therefore , There is no rod that gathers all three color rings .
    Tips :
    rings.length == 2 * n
    1 <= n <= 100
    Such as i yes even numbers , be rings[i] The value of can be taken as ‘R’、‘G’ or ‘B’( Subscript from 0 Start counting )
    Such as i yes Odd number , be rings[i] The value of can be taken as ‘0’ To ‘9’ A number in ( Subscript from 0 Start counting )
    source : Power button (LeetCode)

Their thinking

   This problem only needs to count the colors on each pole , You can solve this problem by embedding a hash table in a dictionary .

class Solution:
    def countPoints(self, rings: str) -> int:
        d={
    '0':[],'1':[],'2':[],'3':[],'4':[],'5':[],'6':[],'7':[],'8':[],'9':[]}
        for i in range(len(rings)):
            if rings[i].isdigit():
                if rings[i-1] not in d[rings[i]]:
                    d[rings[i]].append(rings[i-1])
        count=0
        for i in d.values():
            if len(i)==3:
                count+=1
        return count

 Insert picture description here

原网站

版权声明
本文为[·Starry Sea]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202140503496810.html