字符串转整数, Fibonacci数列,合法括号序列判断
发布日期:2021-05-14 17:05:57 浏览次数:15 分类:精选文章

本文共 1898 字,大约阅读时间需要 6 分钟。

题目一:*~字符串转整数

题目描述:

将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
输入描述:
输入一个字符串,包括数字字母符号,可以为空
返回值描述:
如果是合法的数值表达则返回该数字,否则返回0

public class Solution {       public int StrToInt(String str) {           char[] ch=str.toCharArray();        if(str==null||str.isEmpty()){               return 0;        }        int flg=1;        if(ch[0]=='-'){               flg=-1;            ch[0]='0';        }else if(ch[0]=='+'){               flg=1;            ch[0]='0';        }        int sum=0;        for(int i=0;i
'9'){ sum=0; break; } sum=sum*10+ch[i]-'0'; } return flg*sum; }}

题目二:*~Fibonacci数列

题目描述

Fibonacci数列是这样定义的:
F[0] = 0
F[1] = 1
for each i ≥ 2: F[i] = F[i-1] + F[i-2]
因此,Fibonacci数列就形如:0, 1, 1, 2, 3, 5, 8, 13, …,在Fibonacci数列中的数我们称为Fibonacci数。给你一个N,你想让其变为一个Fibonacci数,每一步你可以把当前数字X变为X-1或者X+1,现在给你一个数N求最少需要多少步可以变为Fibonacci数。

import java.util.*;public class Main{       public static void main(String[] args){           Scanner scan=new Scanner(System.in);        int n=scan.nextInt();        int f1=0;        int f2=1;        while(f2

题目三:*~合法括号序列判断

题目描述

给定一个字符串A和其长度n,请返回一个bool值代表它是否为一个合法的括号串(只能由括号组成)。

题解:

1.字符串长度不为偶数,直接返回false;

2.字符串长度为偶数,遍历字符串,遇到左括号入栈,遇到右括号,看栈顶元素是否为左括号,如果是左括号,左括号出栈,遍历结束,栈为空,合法字符串;
3.如果遍历到一个非括号,直接返回false;

public class Parenthesis {       public boolean chkParenthesis(String A, int n) {           if(n%2!=0){               return false;        }        Stack
stack=new Stack<>(); for(char c:A.toCharArray()){ if(c=='('){ stack.push(c); }else if(c==')'){ if(stack.isEmpty()){ return false; }else if(stack.peek()=='('){ stack.pop(); } }else{ return false; } } return stack.isEmpty(); }}
上一篇:牛客连续最大和,统计回文,不要二
下一篇:线程学习4

发表评论

最新留言

表示我来过!
[***.240.166.169]2025年04月29日 22时31分49秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章