算法每日一练入门篇一
Posted 程序员唐丁
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法每日一练入门篇一相关的知识,希望对你有一定的参考价值。
入门篇
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);
公众号现有功能:课表、成绩、四六级、专利查询(即将上线)、计算机等级考试查询(即将上线)、教资成绩查询(即将上线)、影视资源获取、小说资源获取。欢迎大家使用
以上是关于算法每日一练入门篇一的主要内容,如果未能解决你的问题,请参考以下文章