Pregunta de programación de Niu Ke.net implementación de python (1) -------- Pregunta de programación del ingeniero de I + D de Huawei 2016

1. Eliminar el número

Límite de tiempo: C / C ++ 1 segundo, otros idiomas 2 segundos

Limitación de espacio: C / C ++ 32M, otros idiomas 64M

Hay una matriz a [N] que almacena 0 ~ N-1 en orden, y se requiere eliminar un número cada dos números. Cuando se alcanza el final, avance hasta el principio para continuar y encuentre la posición del subíndice original del último número eliminado. Tome 8 números (N = 7) como ejemplo: {0, 1, 2, 3, 4, 5, 6, 7}, 0-> 1-> 2 (eliminado) -> 3-> 4-> 5 ( Eliminar) -> 6-> 7-> 0 (Eliminar), así que cicle hasta que se elimine el último número.
 

Ingrese la descripción:

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

 

Descripción de salida:

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

 

Ejemplo de entrada 1:

8

Ejemplo de salida 1:

6

 

Implementación de código:

sys de importación

para línea en sys.stdin:
    n = int (línea)
    si n> 1000:
        n = 1000
    a = [i para i en rango (n)]
    i, elimina, k = -1, 0, 0
    mientras elimina <n:
        k = 0
        mientras k <= 2:
            i + = 1
            i = i% n
            si a [i] == -1:
                continuar
            k + = 1
        a [i] = -1
        elimina + = 1
    print (i)
        
    

[Pregunta de programación] juego de caracteres

Límite de tiempo: C / C ++ 1 segundo, otros idiomas 2 segundos

Limitación de espacio: C / C ++ 32M, otros idiomas 64M

Ingrese una cadena para encontrar el conjunto de caracteres contenido en la cadena
 

Ingrese la descripción:

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

 

Descripción de salida:

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

 

Ejemplo de entrada 1:

abcqweracb

 

Ejemplo de salida 1:

abcqwer

 

Implementación de código:

sys de importación

para línea en sys.stdin:
    d = {}
    s = ''
    para c en línea:
        si c no está en d y c! = '\ n':
            s + = c
            d [c] = 1
    impresión (s)

 

[Pregunta de programación] Sudoku

Límite de tiempo: C / C ++ 1 segundo, otros idiomas 2 segundos

Limitación de espacio: C / C ++ 32M, otros idiomas 64M

Sudoku es un juego clásico con el que todos estamos muy familiarizados. Usando una computadora, podemos resolver rápidamente el rompecabezas de Sudoku. Ahora hay algunos problemas simples de Sudoku. Por favor, escriba un programa para resolverlo.
 

Ingrese la descripción:

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

 

Descripción de salida:

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

 

Implementación de código:

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 artículos originales publicados · 160 alabanzas · 820,000 visitas

Supongo que te gusta

Origin blog.csdn.net/happyAnger6/article/details/104235684
Recomendado
Clasificación