匹配演算法測試
括弧匹配演算法 java找出有多少種移除方案
mport java.util.Scanner;
import java.util.Stack;
/**
* @author Owner
*
*/
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n= sc.nextInt();//3條測試數據數據
Stack<Character> stack = null;
while(n!=0){
//從控制台讀入一個測試字元串[]() [(])
String str = sc.next();
//如果該輸入字元串為奇數,說明不匹配
if(str.length() % 2 == 1){
System.out.println("No");
}else{
//說明字元是偶數
stack = new Stack<Character>();
//遍歷第一條測試字元串[]() [(])
for(int i=0;i<str.length();i++){
if(stack.isEmpty()){
//如果棧是空的
stack.push(str.charAt(i));
}else if(stack.peek() == '[' && str.charAt(i) == ']' || stack.peek() == '(' && str.charAt(i) == ')'){
//說明此時棧中字元不是空的,並且符合,
stack.pop();
}else{
stack.push(str.charAt(i));
}
}
if(stack.isEmpty()){
//如果棧是空的,說明括弧匹配
System.out.println("Yes");
}else{
//說明棧不為空,括弧不匹配
System.out.println("No");
}
}
n--;
}
}
}
B. 課程設計題目: 模式匹配演算法的設計與實現
你是南郵的么??知道答案告訴我一下啊
C. 通訊錄拼音搜索模糊匹配的演算法問題
我用java寫了個簡單的,你可以多測試下:
publicstaticvoidmain(String[]args){
String[]name={"wang","hai","bao"};
String[]tests={"whb","WaHB","wangHB","HB","wh","whbo","whba"};
for(Stringstring:tests){
System.out.println(string+":"+match(name,string));
}
}
publicstaticbooleanmatch(String[]source,Stringinput){
if(source==null||source.length==0||input==null||input.length()==0){
returnfalse;
}
Stringtemp;
//統一轉小寫
input=input.toLowerCase();
for(inti=0;i<source.length;i++){
temp=source[i].toLowerCase();
if(temp==null||temp.length()==0){
returnfalse;
}
//最後一步特殊處理
if(i==source.length-1){
if(temp.startsWith(input)){
returntrue;
}
}
//輸入的字元完全匹配到
if(input.startsWith(temp)){
//匹配到後生成新的字元串
input=input.substring(0,input.indexOf(temp));
//System.out.println("temp:"+temp+" 匹配到後input:"+input);
}
//首字母匹配到
elseif(temp.startsWith(input.substring(0,1))){
input=input.substring(1);
//System.out.println("temp:"+temp+" 匹配到後input:"+input);
}else{
returnfalse;
}
//表示匹配結束
if(input.length()==0){
returntrue;
}
}
returnfalse;
}
D. 求 JAVA 字元串匹配 完美演算法
只需要實例化 類Matching 設置參數 並調用m.getIndex()方法就OK 請測試... public class Test18{
public static void main(String[] args){
Matching m = new Matching();
m.setOrgStr("ALSKLSHFKDLLS");
m.setSubStr("LS");
System.out.println(m.getIndex());
}
}
class Matching{
String orgStr ="";
String subStr ="";
public void setOrgStr(String orgStr){
this.orgStr = orgStr;
}
public void setSubStr(String subStr){
this.subStr = subStr;
}
public String getIndex(){
StringBuffer sb = new StringBuffer("{");
//根據關鍵字subStr來拆分字元串orgStr所得的字元串數組
String[] sub = orgStr.split(subStr);
int keyLength = subStr.length(); //關鍵字長度
int keySize = 0; //關鍵字個數
int subSize = sub.length; //子字元串個數
int subLength = 0; //子字元串長度
if(!orgStr.endsWith(subStr)){
keySize = subSize-1;
}else
keySize = subSize; int[] index = new int[keySize];//關鍵字下標數組
for(int i=0;i<keySize;i++){
subLength = sub[i].length();
if(i==0){
index[i]=subLength;
}else
index[i]=index[i-1]+subLength+keyLength;
}
if(keySize>0){
int l = keySize-1;
for(int i=0;i<l;i++){
sb.append(index[i]+",");
}
sb.append(index[l]);//最後一個關鍵字下標
}else{
sb.append("NULL");
}
sb.append("}");
return sb.toString();
}
}
E. 是否有人知道百合網的超級匹配的演算法,是根據什麼來的
超級匹配的篩選後台中加入了一個復雜的數據計算模塊和愛情顧問的人工挑選。這個模塊的計算依據是金百合會員專享的深度戀愛測試結果和戀人圖像的描述。通過深度戀愛測試的結果,能清楚的了解每個會員在戀愛情境下的心態和應激反應,還原出他的正常生活狀態,幫他們尋找到真正能長久在一起和諧生活的戀愛對象。而愛情顧問將同時依據會員的戀人圖像,藉助篩選後台來幫助會員挑選出那些在「眼睛的緣分」上更為默契的匹配對象。通過這兩個方式,超級匹配對象的質量得到了最有效的保證。
F. 編一個函數,函數的功能是測試字元串中的括弧是否匹配。
publicintCheckBrackets(char*input)
{
char*p;
intl=0,m=0,n=0;
intflag=1;
p=input;
while(*p!='