[La espada se refiere a la oferta] - 2 preguntas de entrevista seleccionadas (reemplazar espacios)

contenido

 [Pregunta de programación] Reemplazar espacios

 [Pregunta de programación] Secuencia de Fibonacci


 [Pregunta de programación] Reemplazar espacios

Implemente una función que reemplace cada espacio en una cadena con "%20". Por ejemplo, cuando la cadena es We Are Happy., la cadena reemplazada es We%20Are%20Happy.

Para preguntas de programación de tipo de interfaz, solo necesita seguir el código de solicitud para implementar esta función;

La idea es la siguiente:

Primero, se calcula el número de espacios en la cadena y la longitud convertida de la cadena se determina por el número de espacios.

Cada espacio se convierte en% 20 es encontrar una longitud de cadena de espacio + 2

La cadena tiene dos espacios, así que agregue 4 a la longitud de la cadena. es fin2;

 Si str[end1]!=' ' entonces str[end2]=str[end1]

Si str[end1] == ' ' then str[end2--] = '0';str[end2--] = '2';str[end2--] = '%20';end1--;

el código se muestra a continuación: 

class Solution {
public:
    void replaceSpace(char* str, int length) {
        //数空格
        int space = 0;
        char* p = str;
        while (*p)
        {
            if (*p == ' ')
                space++;
            p++;
        }
        int newlen = length + space * 2;
        int end1 = length - 1;
        int end2 = newlen - 1;
        while (end1 != end2)
        {
            if (str[end1] != ' ')
            {
                str[end2--] = str[end1--];
            }
            else
            {
                str[end2--] = '0';
                str[end2--] = '2';
                str[end2--] = '%';
                end1--;

            }
        }
    }
};

 [Pregunta de programación] Secuencia de Fibonacci


La secuencia de Fibonacci se define así:
F[0] = 0
F[1] = 1
para cada i ≥ 2: F[i] = F[i-1] + F[i-2]
Por lo tanto, la secuencia de Fibonacci parece como: 0, 1, 1, 2, 3, 5, 8, 13, ..., los números en la secuencia de Fibonacci se llaman números de Fibonacci. Déle una N, quiere que sea un número de Fibonacci, puede cambiar el número actual X a X-1 o X+1 en cada paso, ahora déle un número N para encontrar la cantidad mínima de pasos necesarios para convertirse en un número de Fibonacci.

Darle un número N para encontrar el número mínimo de pasos necesarios para convertirse en un número de Fibonacci

analizar de la siguiente manera:

Ingrese el número n, y primero determine si n pertenece a la secuencia de Fibonacci a través del ciclo, si pertenece a la impresión 0, significa que se requieren 0 pasos para hacer que n sea una secuencia de Fibonacci, si n no pertenece a la secuencia de Fibonacci, entonces use n y b se compara, si b>n, compare las distancias de a a n y b a n, es decir, compare los valores absolutos de (an) y (bn), si el valor absoluto de an es grande , emite el valor absoluto de bn, lo contrario es cierto.

 

 

#define _CRT_SECURE_NO_WARNINGS

//斐波那契数列 求最小步数
#include<stdio.h>
#include<math.h>

int main()
{
	int a = 0;
	int b = 1;
	int c = 1;
	int n = 0;
	scanf("%d", &n);
	while (1)
	{
		if (b == n) 
		{
			printf("0\n");
			break;
		}

		else if(b > n)
		{
			if (abs(a - n) > abs(b - n))
			{
				printf("%d", abs(b - n));

			}
			else
			{
				printf("%d", abs(a - n));

			}
			break;
		}
		a = b;
		b = c;
		c = a + b;
	}


	return 0;
}

Supongo que te gusta

Origin blog.csdn.net/weixin_53939785/article/details/124129440
Recomendado
Clasificación