Back home

ARTS #034

ARTS #034

ARTS 034

Algorithme

292. Jeu Nim

Difficulté : Facile

Vous jouez au jeu Nim suivant avec votre ami : Il y a un tas de pierres sur la table, à chaque fois l’un de vous enlève 1 à 3 pierres à tour de rôle. Celui qui enlèvera la dernière pierre sera le vainqueur. Vous prendrez le premier tour pour retirer les pierres.

Vous êtes tous les deux très intelligents et disposez de stratégies optimales pour le jeu. Écrivez une fonction pour déterminer si vous pouvez gagner la partie étant donné le nombre de pierres dans le tas.

Exemple :

Input: 4
Output: false 
Explanation: If there are 4 stones in the heap, then you will never win the game;
             No matter 1, 2, or 3 stones you remove, the last stone will always be 
             removed by your friend.

#####Solution

这个是想出来了就简单

Langue : Swift

class Solution {
    func canWinNim(_ n: Int) -> Bool {
        
        return (n % 4 != 0)
    }
}

8. Chaîne en entier (atoi)

Difficulté : Moyenne

Implémentez <span style="display: inline;">atoi</span> qui convertit une chaîne en entier.

La fonction supprime d’abord autant de caractères d’espacement que nécessaire jusqu’à ce que le premier caractère non-espace soit trouvé. Ensuite, à partir de ce caractère, prend un signe initial plus ou moins facultatif suivi d’autant de chiffres numériques que possible et les interprète comme une valeur numérique.

La chaîne peut contenir des caractères supplémentaires après ceux qui forment le nombre entier, qui sont ignorés et n’ont aucun effet sur le comportement de cette fonction.

Si la première séquence de caractères autres que des espaces dans str n’est pas un nombre entier valide, ou si aucune séquence de ce type n’existe parce que str est vide ou qu’elle ne contient que des caractères d’espacement, aucune conversion n’est effectuée.

Si aucune conversion valide n’a pu être effectuée, une valeur nulle est renvoyée.

Remarque :

  • Seul le caractère espace ' ' est considéré comme un caractère espace. * Supposons que nous ayons affaire à un environnement qui ne peut stocker que des entiers compris dans la plage d’entiers signés de 32 bits : [−2<sup>31</sup>,  2<sup>31 </sup>− 1]. Si la valeur numérique est hors de la plage des valeurs représentables, INT_MAX (2<sup>31 </sup>− 1) ou INT_MIN (−2<sup>31</sup>) est renvoyé.

Exemple 1 :

Input: "42"
Output: 42

Exemple 2 :

Input: "   -42"
Output: -42
Explanation: The first non-whitespace character is '-', which is the minus sign.
             Then take as many numerical digits as possible, which gets 42.

Exemple 3 :

Input: "4193 with words"
Output: 4193
Explanation: Conversion stops at digit '3' as the next character is not a numerical digit.

Exemple 4 :

Input: "words and 987"
Output: 0
Explanation: The first non-whitespace character is 'w', which is not a numerical 
             digit or a +/- sign. Therefore no valid conversion could be performed.

Exemple 5 :

Input: "-91283472332"
Output: -2147483648
Explanation: The number "-91283472332" is out of the range of a 32-bit signed integer.
             Thefore INT_MIN (−231) is returned.

#####Solution

中规中矩的解法

Langue : Swift


class Solution {
    func myAtoi(_ str: String) -> Int {
        var newStr = str
        for cha in  newStr {//去除空格
            if cha == " " {
                newStr.remove(at:str.startIndex)
            }
            else{
                break;
            }
        }
        
        if newStr.count == 0 {
            return 0;
        }
        
        var sign = 1
        let first = newStr[newStr.startIndex]
        if first == "+" {
            sign = 1
            newStr.remove(at:str.startIndex)
        }
        else if (first == "-"){
            sign = -1;
            newStr.remove(at:str.startIndex)
        }
           
        var result = 0
        var temp = 0
        
        for cha in  newStr {
            if cha < "0" || cha > "9" {
                return result
            }
            
            
            temp = temp * 10 + (Int(String(cha)) ?? 0)
            
            
            result = temp * sign
            if result  > Int(Int32.max)  {
                return Int(Int32.max)
            }
            else if result < Int(Int32.min) {
                return Int(Int32.min)
            }
        }
        
        return result
    }
}

Avis

Adaptateur pour adaptateur secteur :

https://dandan2009.github.io/2019/10/30/design-patterns-by-tutorials-the-power-of-OOP-part-3/

Conseils

Il s’agit de l’installation de CocoaPods et de l’installation des pods, par exemple https://github.com/CocoaPods/Specs. master分支到~/.cocoapods/repos目录下,但是由于国内环境问题导致 git clone https://github.com/CocoaPods/Specs est disponible.

决办法:

Créer un clone git https://git.coding.net/CocoaPods/Specs.git,https://gitclub.cn/CocoaPods/Specs

然后把Specs目录改名为master即可。~/.cocoapods/repos的目录层级如下: 15731384080733

https://git.coding.net/CocoaPods/Specs.git和 https://gitclub.cn/CocoaPods/Specs都是国内镜像,要快很多,还可以直接下载zip包,然后解压到~/.cocoapods/repos目录即可。

Partager

昨天看到一个小伙子因为停车费,堵住了一个停车场大门,事情的起因是,小伙子是早上8点进入的停车场,下午2点离场,停车场的收费标准是停车不足12小时收费5元,但是收费员确要10元,收费员是两个50多岁的老头,我之前也遇到过,停车明明不足12小时10 ans, 10 ans, 10 ans, 10 ans, 10 ans, 10 ans, 10 ans, 10 ans, 10 ans, 10 ans, 10 ans, 10 ans时间等原因,很多人不想为了5块钱和他们争吵,但是这次他们却遇到了个较真的;小伙子堵停车场门确实不对,但是小伙子较真的做法还是值得肯定的,生活中要多有这样的人,我们的生活或许会更美好; 但是因为我们觉得怕麻烦或得不偿失,而不去维护自己的合法权益,允许一些人践踏规则。比如这次事件对小伙子来说为了元钱,却浪费了近3个小时,从这个角度讲确实不值,但是如果我们每个人与到这样的事都能站出来较真一下,维护规则,那么我们的生活会少很多藏污纳垢的地方。