算法每日一练入门篇一(代码片段)

程序员唐丁 程序员唐丁     2023-02-27     784

关键词:

入门篇

1、字符串反转

描述

写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)

示例1

输入:

"abcd"

返回值:

"dcba"

题解

解法一:

思路:直接使用语言的库函数完成

Python版

class Solution:
    def solve(self , str ):
        return str[::-1]
#         result = ""
#         for i in range(len(str)-1,-1,-1):
#             result += str[i]
#         return result

Java版

import java.util.*;
public class Solution 
    public String solve (String str) 
        StringBuffer sb =new StringBuffer(str);
        return sb.reverse().toString();
    

解法二:

思路:开辟一个和str长度大小相同的一个字符串,把传入的str倒序赋值到新开的字符串上

Python版

class Solution:
    def solve(self , str ):
         result = ""
         for i in range(len(str)-1,-1,-1):
             result += str[i]
         return result

Java版

import java.util.*;


public class Solution 
    public String solve (String str) 
        char[] str2 = str.toCharArray();
        int len = str.length();
        for (int i=0;i<len;i++)
            str2[i] = str.charAt(len-1-i);
        
        return new String(str2);
    

解法三:

思路:原地替换

Python版

class Solution:
    def solve(self , str ):
         result = list(str)
         len_ = len(str)
         for i in range(0,int(len_/2):
             result[i],result[len_-1-i] = result[len_-1-i],result[i]
         return ''.join(result)

Java版

import java.util.*;
public class Solution 
    public String solve (String str) 
        char[] cstr = str.toCharArray();
        int len = str.length();
        for(int i = 0 ; i < len/2 ;i++)
        
                char t = cstr[i];
                cstr[i] = cstr[len-1-i];
                cstr[len-1-i]=t;
        
        return new String(cstr);
    

2、斐波那契数列

描述

大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。

n\\leq 39n≤39

示例1

输入:

4

返回值:

3

题解

解法一(顺序相加):

思路:定义好前两个数字,然后按顺序将前两位相加得到新的斐波那契数列的值

Python版

# -*- coding:utf-8 -*-
class Solution:
    def Fibonacci(self, n):
        # write code here
        a = 0
        b = 1
        if n == 0:
            return a
        elif n == 1:
            return 1
        for i in range(0,n-1):
            c = a + b
            a,b = b,c
        return c

Java版

public class Solution 
    public int Fibonacci(int n) 
        int a = 0;
        int b = 1;
        int res = 0;
        if (n<=1)
            return n;
        else
            for (int i=0;i<n-1;i++)
                res = a + b;
                a = b;
                b = res;
            
            return res;
        
    

解法二(递归):

思路:这种题型很明显可以用递归来解决,如果n为0或1时,直接返回n,当n大于1时,进行递归相加。当然如果数字比较大时不推荐使用递归。

Python版

# -*- coding:utf-8 -*-
class Solution:
    def Fibonacci(self, n):
        # write code here
        if n<=1:
            return n
        else:
            return self.Fibonacci(n-1)+self.Fibonacci(n-2)

Java版

public class Solution 
    public int Fibonacci(int n) 
        int a = 0;
        int b = 1;
        int res = 0;
        if (n<=1)
            return n;
        else
            return Fibonacci(n-1)+Fibonacci(n-2);
        
    

公众号现有功能:课表、成绩、四六级、专利查询(即将上线)、计算机等级考试查询(即将上线)、教资成绩查询(即将上线)、影视资源获取、小说资源获取。欢迎大家使用

算法每日一练入门篇一(代码片段)

入门篇1、字符串反转描述写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)示例1输入:"abcd"返回值:"dcba"题解解法一:思路:直接使用语... 查看详情

算法每日一练(入门篇二)(代码片段)

3、最大公约数描述如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数。几个自然数公有的约数,叫做这几个自然数的公约数。公约数中最大的一个公约数,称为这几个自然数的最大公约数。输入a... 查看详情

算法每日一练(入门篇二)(代码片段)

3、最大公约数描述如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数。几个自然数公有的约数,叫做这几个自然数的公约数。公约数中最大的一个公约数,称为这几个自然数的最大公约数。输入a... 查看详情

算法每日一练(入门篇二)(代码片段)

...示例2输入:8,12返回值:4题解解法(欧几里得算法)思路:欧几里得算法的定理是:两个非负整数的最大公约数为其中较小的数和两数相除的余数的最大公约数。Python递归版classSolution:defgcd(self,a,b):#writecodeh... 查看详情

算法leetcode每日一练804.唯一摩尔斯密码词(代码片段)

文章目录804.唯一摩尔斯密码词:样例1:样例2:提示:分析题解javacc++pythongorusttypescript原题传送门:https://leetcode-cn.com/problems/unique-morse-code-words/804.唯一摩尔斯密码词:国际摩尔斯密码定义一种标 查看详情

每日一练:#003大数相加(代码片段)

题目描述请设计一个算法能够完成两个用字符串存储的整数进行相加操作,对非法的输入则返回error输入描述:输入为一行,包含两个字符串,字符串的长度在[1,100]。输出描述:输出为一行。合法情况输出相加结果,非法情况输出e... 查看详情

算法leetcode每日一练层数最深叶子节点的和(代码片段)

文章目录2235.两整数相加:样例1:样例2:提示:分析题解javacc++pythongorusttypescript原题传送门:https://leetcode-cn.com/problems/deepest-leaves-sum/2235.两整数相加:给你一棵二叉树的根节点root࿰ 查看详情

算法leetcode每日一练1832.判断句子是否为全字母句(代码片段)

文章目录1832.判断句子是否为全字母句:样例1:样例2:提示:分析题解javacc++pythongorusttypescript原题传送门:https://leetcode-cn.com/problems/check-if-the-sentence-is-pangram/1832.判断句子是否为全字母句&#x 查看详情

算法千题案例每日一练leetcode打卡——107.重塑矩阵(代码片段)

...:二维数组的一维表示💬总结📢前言🚀算法题🚀🌲每天打卡一道算法题,既是一个学习过程,又是一个分享的过程😜 查看详情

算法千题案例每日一练leetcode打卡——109.分糖果(代码片段)

...心🌻Java方法:贪心💬总结📢前言🚀算法题🚀🌲每天打卡一道算法题,既是一个学习过程,又是一个分享的过程😜🌲提示&#x 查看详情

算法千题案例每日一练leetcode打卡——110.种花问题(代码片段)

...🌻Java方法:双指针💬总结📢前言🚀算法题🚀🌲每天打卡一道算法题,既是一个学习过程,又是一个分享的过程😜🌲提 查看详情

算法千题案例每日一练leetcode打卡——110.种花问题(代码片段)

...🌻Java方法:双指针💬总结📢前言🚀算法题🚀🌲每天打卡一道算法题,既是一个学习过程,又是一个分享的过程😜🌲提 查看详情

算法千题案例每日一练leetcode打卡——109.分糖果(代码片段)

...心🌻Java方法:贪心💬总结📢前言🚀算法题🚀🌲每天打卡一道算法题,既是一个学习过程,又是一个分享的过程😜🌲提示&#x 查看详情

算法leetcode每日一练二叉搜索树的范围和(代码片段)

文章目录二叉搜索树的范围和:样例1:样例2:提示:分析题解javacc++pythongorusttypescript原题传送门:https://leetcode-cn.com/problems/range-sum-of-bst/二叉搜索树的范围和:给定二叉搜索树的根结点root,返回 查看详情

算法千题案例每日一练leetcode打卡——105.仅仅反转字母(代码片段)

...🌻Java方法:字母栈💬总结📢前言🚀算法题🚀🌲每天打卡一道算法题,既是一个学习过程,又是一个分享的过程😜🌲 查看详情

算法leetcode每日一练2194.excel表中某个范围内的单元格(代码片段)

文章目录2194.Excel表中某个范围内的单元格:样例1:样例2:提示:分析题解javacc++pythongorustjavascripttypescript原题传送门:https://leetcode-cn.com/problems/cells-in-a-range-on-an-excel-sheet/21 查看详情

算法千题案例每日一练leetcode打卡——106.数组拆分i(代码片段)

...序🌻Java方法:排序💬总结📢前言🚀算法题🚀🌲每天打卡一道算法题,既是一个学习过程,又是一个分享的过程😜🌲提示& 查看详情

python每日一练——第1天:水仙花数(代码片段)

...费订阅!!!文章目录1.问题描述2.问题分析3.算法思路4.代码实现for 查看详情