Question de programmation Niu Ke.net mise en œuvre de python (1) -------- Question de programmation de l'ingénieur R & D Huawei 2016

1. Supprimer le numéro

Limite de temps: C / C ++ 1 seconde, autres langues 2 secondes

Limitation d'espace: C / C ++ 32M, autres langues 64M

Il y a un tableau a [N] qui stocke 0 ~ N-1 dans l'ordre, et il est nécessaire de supprimer un nombre tous les deux nombres. Lorsque la fin est atteinte, bouclez jusqu'au début pour continuer et recherchez la position d'indice d'origine du dernier numéro supprimé. Prenons 8 chiffres (N = 7) comme exemple: {0, 1, 2, 3, 4, 5, 6, 7}, 0-> 1-> 2 (supprimé) -> 3-> 4-> 5 ( Supprimer) -> 6-> 7-> 0 (Supprimer), alors faites défiler jusqu'à ce que le dernier numéro soit supprimé.
 

Entrez la description:

每组数据为一行一个整数n(小于等于1000),为数组成员数,如果大于1000,则对a[999]进行计算。

 

Description de la sortie:

一行输出最后一个被删掉的数的原始下标位置。

 

Exemple d'entrée 1:

8

Exemple de sortie 1:

6

 

Implémentation du code:

importer sys

pour la ligne dans sys.stdin:
    n = int (ligne)
    si n> 1000:
        n = 1000
    a = [i pour i dans la plage (n)]
    i, supprime, k = -1, 0, 0
    tandis que supprime <n:
        k = 0
        tandis que k <= 2:
            i + = 1
            i = i% n
            si a [i] == -1:
                continuer
            k + = 1
        a [i] = -1
        supprime + = 1
    print (i)
        
    

Jeu de caractères [Question de programmation]

Limite de temps: C / C ++ 1 seconde, autres langues 2 secondes

Limitation d'espace: C / C ++ 32M, autres langues 64M

Entrez une chaîne pour trouver le jeu de caractères contenu dans la chaîne
 

Entrez la description:

每组数据输入一个字符串,字符串最大长度为100,且只包含字母,不可能为空串,区分大小写。

 

Description de la sortie:

每组数据一行,按字符串原有的字符顺序,输出字符集合,即重复出现并靠后的字母不输出。

 

Exemple d'entrée 1:

abcqweracb

 

Exemple de sortie 1:

abcqwer

 

Implémentation du code:

importer sys

pour la ligne dans sys.stdin:
    d = {}
    s = ''
    pour c dans la ligne:
        si c pas dans d et c! = '\ n':
            s + = c
            d [c] = 1
    print (s)

 

[Question de programmation] Sudoku

Limite de temps: C / C ++ 1 seconde, autres langues 2 secondes

Limitation d'espace: C / C ++ 32M, autres langues 64M

Le Sudoku est un jeu classique que nous connaissons tous très bien. En utilisant un ordinateur, nous pouvons résoudre rapidement le puzzle Sudoku. Il y a maintenant quelques problèmes simples de Sudoku. Veuillez écrire un programme pour le résoudre.
 

Entrez la description:

输入9行,每行为空格隔开的9个数字,为0的地方就是需要填充的。

 

Description de la sortie:

输出九行,每行九个空格隔开的数字,为解出的答案。

 

Implémentation du code:

import sys
import copy

def check_results(results, i, j):
    row = results[i]
    for m in range(0, j):
        if row[m] == row[j]:
            return False

    for n in range(0, i):
        if results[n][j] == results[i][j]:
            return False

    k, l = i//3, j//3
    for m in range(k*3, i+1):
        for n in range(l*3, l*3+3):
            if m == i and n == j:
                return True
            if results[m][n] == results[i][j]:
                return False

    return True

def prt_results(results):
    for row in results:
        s = ''
        for col in row:
            s += ' ' + str(col)
        print(s)

def get_sd(a, i=0, j=0, results=None):
    if results is None:
        results = copy.deepcopy(a)

    if a[i][j] != 0:
        if j < 8:
            get_sd(a, i, j+1, results)
        elif i < 8:
            get_sd(a, i+1, 0, results)
        else:
            prt_results(results)
            sys.exit(0)
    else:
        for s in range(1, 10):
            results[i][j] = s
            if not check_results(results, i, j):
                continue
            else:
                if i == 8 and j == 8:
                    prt_results(results)
                    sys.exit(0)
                elif j < 8:
                    get_sd(a, i, j+1, results)
                elif i < 8:
                    get_sd(a, i+1, 0, results)
        results[i][j] = 0
    return results

if __name__ == "__main__":
    a=[[0 for _ in range(9)] for _ in range(9)]
    get_sd(a, 0, 0
230 articles originaux publiés · 160 éloges · 820 000 vues

Je suppose que tu aimes

Origine blog.csdn.net/happyAnger6/article/details/104235684
conseillé
Classement