有限状态机求解字符串匹配问题
来源:互联网 发布:2017天猫双11销售数据 编辑:程序博客网 时间:2024/06/05 03:09
问题描述:
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。
class Solution {public: char arr[10] = "+-n.ne+-n"; int turn[10][9] = { //+ - n . n e + - n {1, 1, 1, 0, 0, 0, 0, 0, 0}, // # start {0, 0, 1, 1, 0, 0, 0, 0, 0}, // + {0, 0, 1, 1, 0, 0, 0, 0, 0}, // - {0, 0, 1, 1, 0, 1, 0, 0, 0}, // n {0, 0, 0, 0, 1, 0, 0, 0, 0}, // . {0, 0, 0, 0, 1, 1, 0, 0, 0}, // n {0, 0, 0, 0, 0, 0, 1, 1, 1}, // e {0, 0, 0, 0, 0, 0, 0, 0, 1}, // + {0, 0, 0, 0, 0, 0, 0, 0, 1}, // - {0, 0, 0, 0, 0, 0, 0, 0, 1} // n }; bool isNumeric(char* string) { int cur = 0; for(int j, i = 0; string[i]; i++) { for(j = 0; j < 9; j++) { if(turn[cur][j]) { if(('0' <= string[i] && string[i] <= '9' && arr[j] == 'n') || (string[i] == 'E' && arr[j] == 'e')|| string[i] == arr[j]) { cur = j + 1; break; } } } if(j == 9) return false; } if(cur == 3 || cur == 4 || cur == 5 || cur == 9) return true; return false; }};
阅读全文
0 0
- 有限状态机求解字符串匹配问题
- 字符串匹配算法-有限状态机
- 字符串匹配---暴力求解
- 如何求解字符串问题
- 这道题应该怎么做啊 求解 字符串的模式匹配问题
- 蛮力法:设计算法求解字符串的模式匹配问题,并编程实现。
- KMP字符串匹配,next数组的求解
- 字符串包含问题的求解
- 【数据结构】 利用栈求解 括号匹配问题
- python求解括号匹配的相关问题
- 字符串查找匹配问题
- 字符串匹配问题
- 中文字符串匹配问题
- 字符串匹配问题
- 字符串匹配问题
- 字符串匹配问题
- 字符串匹配问题
- 字符串匹配问题
- tf.matrix_diag和tf.matrix_inverse的用法(tensorflow如何生成对角矩阵和求逆矩阵)
- 分布式节点协调实现方式
- opencv bug集合
- FRI.Device.Rating.Program.2.0.
- PHP 实现多文件上传功能
- 有限状态机求解字符串匹配问题
- 笔记---上传下载代码
- maven导入已有jar包
- 读书笔记总结(链接)
- java线程中断的理解
- 实现生产组和消费者的机制,利用共享内存实现文件的打开和读写操作,PV操作。
- 线程池详解
- 【LeetCode】442. Find All Duplicates in an Array
- 主流的 骨骼蒙皮动画 顶点变换方式的一个细节的思考