65. Valid Number
来源:互联网 发布:admaster数据分析师 编辑:程序博客网 时间:2024/05/22 04:41
class Solution {
public boolean isNumber(String s) {
//String test=s;
//String test=" +11111.e+1 ";
String re_rest=s;
String test=re_rest.replace("-","+");
String str[] = test.split(" ");
boolean one_blank=false;
boolean ans=false;
int nums=0;
for(int i=0;i<str.length;i++){
if(! str[i].isEmpty()){
nums++;
test=str[i];
}
}
int point=0;
int num_e=0;
int num_zf=0;
char[] a=test.toCharArray();
charToByteAscii ascii= new charToByteAscii();
System.out.println(test);
for (int i=0;i<a.length && nums==1;i++){
int tmp_i=ascii.charToByteAscii(a[i]);
if((tmp_i<=47||tmp_i>=58) && tmp_i!=46&&tmp_i!=101&&tmp_i!=43){//是否出现非+ - . e
nums=2;
ans=false;
break;
}else if(tmp_i==101){//出现次数 2
num_e++;
if(num_e>=2 || i==a.length-1){
nums=2;
ans=false;
break;
}else if((point==1||num_zf==1) && i==1){
nums=2;
ans=false;
break;
}
}
else if(tmp_i==46){//点出现次数 2
point++;
if(point>=2){
nums=2;
ans=false;
break;
}
}
else if(tmp_i==43){//+ -出现次数小于3
num_zf++;
if(num_zf>2){
nums=2;
ans=false;
break;
}
}
}
if(nums==1){//判断空格
if(num_zf==2){
if(a.length<5){
one_blank=false;
ans=false;
}else if(ascii.charToByteAscii(a[0])==43 && num_e==1){
if(test.contains("e+")){
String[] strings_zf=test.split("e\\+");
System.out.println(strings_zf[0]);
System.out.println(strings_zf[1]);
if(strings_zf[1].contains(".")==false && strings_zf[0].length()>1&&strings_zf[1].length()>0){
if(point==1 && a.length>5){
one_blank=true;
ans=true;
}else if(point==0){
one_blank=true;
ans=true;
}
}
}
}
}else if(num_zf==1){
//System.out.println(ascii.charToByteAscii(a[0]));
if(ascii.charToByteAscii(a[0])==43){
if(num_e==1){
if(point==0){
String[] strings_zf=test.split("e");
System.out.println(strings_zf[0]);
if(strings_zf[1].contains(".")==false && strings_zf[1].length()>0){
if(point==1 && a.length>4){
one_blank=true;
ans=true;
}else if(point==0){
one_blank=true;
ans=true;
}
}
}else {
if(a.length>3 && test.indexOf(".")<test.indexOf("e")){
one_blank=true;
ans=true;
}
}
}else if(point==1&&a.length>2){
one_blank=true;
ans=true;
}else if(point==0&&a.length>1){
one_blank=true;
ans=true;
}
}else if(num_e==1){
//System.out.println(111);
if(test.contains("e+") && a.length>3 ){
System.out.println(111);
String[] strings_zf=test.split("e\\+");
System.out.println(strings_zf[0]);
System.out.println(strings_zf[1]);
if(point==1){
if(strings_zf[0].contains(".") && strings_zf[0].length()>1&&strings_zf[1].length()>0&&strings_zf[1].contains("+")==false&&strings_zf[0].contains("+")==false){
one_blank=true;
ans=true;
}
}else {
if(strings_zf[0].length()>=1&&strings_zf[1].length()>0&&strings_zf[1].contains("+")==false&&strings_zf[0].contains("+")==false){
one_blank=true;
ans=true;
}
}
}
}
}else if(num_zf==0){
if(point==0 && num_e==0){
one_blank=true;
ans=true;
}else if(point==0 && num_e==1){
if(ascii.charToByteAscii(a[0])!=101&&ascii.charToByteAscii(a[a.length-1])!=101){
one_blank=true;
ans=true;
}
}else if(point==1&&num_e==0){
if(a.length>1){
one_blank=true;
ans=true;
}
}else if(point==1&&num_e==1 &&a.length>3){
if(test.indexOf(".")<test.indexOf("e")){
one_blank=true;
ans=true;
}
}
}
}else{
one_blank=false;
ans=false;
}
System.out.print(ans);
return ans;
}
}
class charToByteAscii{
public byte charToByteAscii(char ch){
byte byteAscii = (byte)ch;
return byteAscii;
}
public boolean c47To58(char ch){
byte byteAscii = (byte)ch;
if(byteAscii>47 && byteAscii<58){
return true;
}else {
return false;
}
}
}
public boolean isNumber(String s) {
//String test=s;
//String test=" +11111.e+1 ";
String re_rest=s;
String test=re_rest.replace("-","+");
String str[] = test.split(" ");
boolean one_blank=false;
boolean ans=false;
int nums=0;
for(int i=0;i<str.length;i++){
if(! str[i].isEmpty()){
nums++;
test=str[i];
}
}
int point=0;
int num_e=0;
int num_zf=0;
char[] a=test.toCharArray();
charToByteAscii ascii= new charToByteAscii();
System.out.println(test);
for (int i=0;i<a.length && nums==1;i++){
int tmp_i=ascii.charToByteAscii(a[i]);
if((tmp_i<=47||tmp_i>=58) && tmp_i!=46&&tmp_i!=101&&tmp_i!=43){//是否出现非+ - . e
nums=2;
ans=false;
break;
}else if(tmp_i==101){//出现次数 2
num_e++;
if(num_e>=2 || i==a.length-1){
nums=2;
ans=false;
break;
}else if((point==1||num_zf==1) && i==1){
nums=2;
ans=false;
break;
}
}
else if(tmp_i==46){//点出现次数 2
point++;
if(point>=2){
nums=2;
ans=false;
break;
}
}
else if(tmp_i==43){//+ -出现次数小于3
num_zf++;
if(num_zf>2){
nums=2;
ans=false;
break;
}
}
}
if(nums==1){//判断空格
if(num_zf==2){
if(a.length<5){
one_blank=false;
ans=false;
}else if(ascii.charToByteAscii(a[0])==43 && num_e==1){
if(test.contains("e+")){
String[] strings_zf=test.split("e\\+");
System.out.println(strings_zf[0]);
System.out.println(strings_zf[1]);
if(strings_zf[1].contains(".")==false && strings_zf[0].length()>1&&strings_zf[1].length()>0){
if(point==1 && a.length>5){
one_blank=true;
ans=true;
}else if(point==0){
one_blank=true;
ans=true;
}
}
}
}
}else if(num_zf==1){
//System.out.println(ascii.charToByteAscii(a[0]));
if(ascii.charToByteAscii(a[0])==43){
if(num_e==1){
if(point==0){
String[] strings_zf=test.split("e");
System.out.println(strings_zf[0]);
if(strings_zf[1].contains(".")==false && strings_zf[1].length()>0){
if(point==1 && a.length>4){
one_blank=true;
ans=true;
}else if(point==0){
one_blank=true;
ans=true;
}
}
}else {
if(a.length>3 && test.indexOf(".")<test.indexOf("e")){
one_blank=true;
ans=true;
}
}
}else if(point==1&&a.length>2){
one_blank=true;
ans=true;
}else if(point==0&&a.length>1){
one_blank=true;
ans=true;
}
}else if(num_e==1){
//System.out.println(111);
if(test.contains("e+") && a.length>3 ){
System.out.println(111);
String[] strings_zf=test.split("e\\+");
System.out.println(strings_zf[0]);
System.out.println(strings_zf[1]);
if(point==1){
if(strings_zf[0].contains(".") && strings_zf[0].length()>1&&strings_zf[1].length()>0&&strings_zf[1].contains("+")==false&&strings_zf[0].contains("+")==false){
one_blank=true;
ans=true;
}
}else {
if(strings_zf[0].length()>=1&&strings_zf[1].length()>0&&strings_zf[1].contains("+")==false&&strings_zf[0].contains("+")==false){
one_blank=true;
ans=true;
}
}
}
}
}else if(num_zf==0){
if(point==0 && num_e==0){
one_blank=true;
ans=true;
}else if(point==0 && num_e==1){
if(ascii.charToByteAscii(a[0])!=101&&ascii.charToByteAscii(a[a.length-1])!=101){
one_blank=true;
ans=true;
}
}else if(point==1&&num_e==0){
if(a.length>1){
one_blank=true;
ans=true;
}
}else if(point==1&&num_e==1 &&a.length>3){
if(test.indexOf(".")<test.indexOf("e")){
one_blank=true;
ans=true;
}
}
}
}else{
one_blank=false;
ans=false;
}
System.out.print(ans);
return ans;
}
}
class charToByteAscii{
public byte charToByteAscii(char ch){
byte byteAscii = (byte)ch;
return byteAscii;
}
public boolean c47To58(char ch){
byte byteAscii = (byte)ch;
if(byteAscii>47 && byteAscii<58){
return true;
}else {
return false;
}
}
}
阅读全文
0 0
- LeetCode --- 65. Valid Number
- [Leetcode] 65. Valid Number
- [LeetCode]65.Valid Number
- 65. Valid Number
- Leetcode-65.Valid Number
- 65. Valid Number
- 【leetcode】65.Valid Number
- leetcode 65. Valid Number
- LeetCode 65. Valid Number
- Leetcode 65. Valid Number
- 65. Valid Number
- 65. Valid Number
- LeetCode 65. Valid Number
- LeetCode - 65. Valid Number
- 65. Valid Number
- [LeetCode] 65. Valid Number
- leetcode 65.Valid Number
- 65. Valid Number
- shell 一键部署KVM虚拟机
- Kafka整理
- 每天一道LeetCode-----计算直方图中最大矩形的面积
- docker5 镜像加速
- Android Studio 模板(MAC)
- 65. Valid Number
- linux 配置ssh server的方法
- 分享github上的网络是否连接工具类NetWorkUtil及图片加载工具类ImageLoader
- Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks原文
- c# webservice异步调用wcf 异常:由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值
- Java基础_try-catch-finally
- 【工业机器人】清华大学教授讲工业机器人技术,学工业机器人的好素材!
- 2017年12月14日 第三十六天次总结
- springboot-mybatis