设计一个Java语言算法判别一个算术表达式的圆括号是否正确配对 设计一个算法,要求判别一个算术表达式中的圆括号配对是否正确
\u5728Java\u4e2d\uff0c\u8bbe\u8ba1\u4e00\u4e2a\u7b97\u6cd5,\u5224\u65ad\u4e00\u4e2a\u7b97\u672f\u8868\u8fbe\u5f0f\u4e2d\u7684\u62ec\u53f7\u662f\u5426\u914d\u5bf9\u3002\u7b97\u6cd5\uff1a
String str="5+(4-3)\uff09" \u8868\u8fbe\u5f0f
char kuohao[]; \u7528\u4f5c\u62ec\u53f7\u5806\u6808
\u626b\u63cfstr\u4e2d\u7684\u5b57\u7b26
1\u5982\u679c\u662f\uff08\u5219\u5165\u6808
2\u5982\u679c\u662f\uff09
a\u5982\u679c\u6218\u4e0d\u7a7a\u51fa\u6808
b\u5982\u679c\u6808\u7a7a\uff0c\u4e0d\u5339\u914d\u3002\u7b97\u6cd5\u7ed3\u675f
\u6700\u540e\u6808\u7a7a\u5219\u5339\u914d
\u4e0b\u9762\u662f\u6211\u7684\u5b9e\u73b0
public class biaodashi {
public static void main(String args[])
{
int top=0;//\u5806\u6307\u9488
boolean end=true;//\u4e0d\u5339\u914d\u65f6\u53ea\u8f93\u51fa\u4e00\u6b21
char stack[]=new char[100];//\u5b58\u62ec\u53f7
String biaoda="(((1+(2)-6))";//\u8868\u8fbe\u5f0f
char biao[]=biaoda.toCharArray();//\u5c06\u5b57\u7b26\u4e32\u8f6c\u5316\u6210\u5b57\u7b26\u6570\u7ec4
System.out.println("\u8868\u8fbe\u5f0f: "+biaoda);
for(int i=0;i<biao.length&&end;i++)//\u904d\u5386\u8868\u8fbe\u5f0f\u4e2d\u6240\u6709\u5b57\u7b26
{
if(biao[i]=='(')//\u5982\u679c\u662f(\u5219\u5165\u6808
{
stack[top]='(';
top++;
}
else if(biao[i]==')')//\u5982\u679c\u662f)\u5219\u51fa\u6218
{
if(!(top==0))
top--;
else
{
System.out.println("\u62ec\u53f7\u4e0d\u5339\u914d");
end=false;
}
}
}//\u9664\u5faa\u73af\u4e24\u79cd\u53ef\u80fd
if(top==0&&end)
System.out.println("\u62ec\u53f7\u5339\u914d");//\u51fa\u5faa\u73afstack\u7a7a
else if(top!=0&&end)
System.out.println("\u62ec\u53f7\u4e0d\u5339\u914d");//\u51fa\u5faa\u73af\u65f6stack\u4e0d\u7a7a
}
}
1\u3001\u5148\u53bb\u6389\u5b57\u7b26\u4e32\u524d\u9762\u7684\u7a7a\u767d\u5b57\u7b26\uff0c\u7136\u540e\u901a\u8fc7\u6b63\u5219\u8868\u8fbe\u5f0f\u5c06\u7b26\u5408\u9898\u76ee\u8981\u6c42\u7684\u6570\u5b57\u578b\u5b57\u7b26\u4e32\u89e3\u6790\u51fa\u6765\uff0c\u7136\u540e\u5bf9\u6570\u5b57\u4e32\u90e8\u5206\u8fdb\u884c\u9010\u4e2a\u5904\u7406\u3002
2\u3001\u5148\u5224\u65ad\u7b2c1\u4f4d\u975e\u7a7a\u5b57\u7b26\uff0c\u5982\u679c\u4e0d\u662f+\u3001- \u6216\u6570\u5b57\u5b57\u7b26\uff0c\u5219\u76f4\u63a5\u8fd4\u56de 0\uff0c \u5426\u5219\u5bf9\u5176\u4f59\u5b57\u7b26\u8fdb\u884c\u904d\u5386\u5904\u7406\uff0c\u6b64\u65f6\uff0c\u5bf9\u4e8e\u6570\u5b57\u5b57\u7b26\uff0c\u9700\u8981\u8fdb\u884c\u8d8a\u754c\u5224\u65ad\uff0c\u5982\u679c\u9047\u5230\u975e\u6570\u5b57\u5b57\u7b26\uff0c\u76f4\u63a5\u8df3\u51fa\u5faa\u73af\u3002
3\u3001\u63a7\u5236\u53f0\u8f93\u51fa\u6d4b\u8bd5\u7ed3\u679c\uff0c\u7b26\u5408\u9884\u671f\uff0c\u7b97\u6cd5\u5747\u6b63\u786e\u8fd4\u56de\u3002
4\u3001\u6784\u5efa 100000 \u4e2a\u957f\u5ea6\u4e3a 100 \u7684\u968f\u673a\u5b57\u7b26\u4e32\u3002
5\u3001\u53d610\u6b21\u8fd0\u884c\u7ed3\u679c\u7684\u5e73\u5747\u503c\uff0c\u76f4\u63a5\u5904\u7406\u7b97\u6cd5\u660e\u663e\u4f18\u4e8e\u6b63\u5219\u5339\u914d\u7b97\u6cd5\uff0c\u6267\u884c\u6548\u7387\uff0c\u524d\u8005\u5927\u6982\u662f\u540e\u8005\u768410\u500d\u3002
ScriptEngineManager sem = new ScriptEngineManager ();
ScriptEngine se = sem.getEngineByName ("js");
String jsonstr = "3*(1+1)/((2-1)+87";
try
{
System.out.println (se.eval (jsonstr));
}
catch (ScriptException e)
{
System.out.println ("圆括号不配对");
}
用“栈”的数据结构来实现。将左括号压栈,遇到右括号就弹出,最后看看堆栈中是否还有剩余的数据。没有就是都匹配上了,有就是没匹配上。
绛旓細閫掑綊鐨勬渶搴曢儴鎯呭舰锛屾槸鏁板垪鐨勫ぇ灏忔槸闆舵垨涓锛屼篃灏辨槸姘歌繙閮藉凡缁忚鎺掑簭濂戒簡銆傝櫧鐒朵竴鐩撮掑綊涓嬪幓锛屼絾鏄繖涓绠楁硶鎬讳細閫鍑猴紝鍥犱负鍦ㄦ瘡娆$殑杩唬锛坕teration锛変腑锛屽畠鑷冲皯浼氭妸涓涓鍏冪礌鎽嗗埌瀹冩渶鍚庣殑浣嶇疆鍘汇傜畻娉曚簩锛氬爢鎺掑簭绠楁硶 鍫嗘帓搴忥紙Heapsort锛夋槸鎸囧埄鐢ㄥ爢杩欑鏁版嵁缁撴瀯鎵璁捐鐨勪竴绉嶆帓搴忕畻娉曘傚爢绉槸涓涓繎浼煎畬鍏ㄤ簩鍙...
绛旓細public static void main(String[] args) { int num = new java.util.Scanner(System.in).nextInt();//杈撳叆鐨勫煎氨瀛樺湪num涓簡 java.util.List<Integer> gene = new java.util.ArrayList<Integer>();//瀹氫箟涓涓ArrayList瀛樻斁num鐨勫洜瀛,鍛藉悕涓篻ene int numTemp = num;//杩欎釜鐢ㄤ簬璁$畻,浼氭敼鍙樺...
绛旓細銆傘傞櫎闈炲缓閾捐〃鏃跺欙紝涓绘剰鎶婂畾鍊兼斁澶存垨鑰呭熬閮紙鎸夊簭瑙侀摼琛級
绛旓細鏈功鏃ㄥ湪涓烘暟鎹粨鏋勫叆闂ㄨ绋嬶紙濡侰S-2锛夋彁渚涙暀鏉愶紝浣滆匜rank Carrano鍦ㄧ紪鎾拌繃绋嬩腑锛屽缁堝皢Java涓庡璞′綔涓烘牳蹇冿紝璁捐浜嗕竴绉嶆暀瀛﹀疄璺垫у己鐨勬暀鏉愩傜珷鑺傚垝鍒嗙煭灏忕簿鎮嶏紝渚夸簬瀛︿範锛屼篃缁欐暀甯堟暀瀛︽彁渚涗簡鐏垫椿鐨勭┖闂淬備功涓缁嗕粙缁嶄簡绾挎ц〃銆佽瘝鍏搞佹爤銆侀槦鍒楃瓑鏁版嵁缁撴瀯锛屽苟鏁欐巿鐩稿叧绠楁硶璁捐鎶鏈"缂栫▼鎻愮ず"涓鸿鑰呮彁渚涗簡...
绛旓細JAVA 姹傚姪涓娈绠楁硶浠g爜!姹傚ぇ绁瀪~~ 灏辨槸涓嬮潰鍥剧墖涓3*3鐨勬鏂瑰舰,鎴戠幇鍦ㄩ渶瑕佸仛涓涓绋嬪簭鏄竴涓暟瀛楁嫾鍥剧殑娓告垙,鎴戦渶瑕佹妸鍥剧墖涓婄殑鏍煎瓙绉绘垚012345678鐨勫舰鐘(鐧借壊鐨勬牸瀛愬氨鏄暟瀛0)鐜板湪鎴戝凡缁忓仛浜嗕竴澶ф浠g爜,鍙渶瑕佸湪mouse... 灏辨槸涓嬮潰鍥剧墖涓3*3鐨勬鏂瑰舰,鎴戠幇鍦ㄩ渶瑕佸仛涓涓▼搴忔槸涓涓暟瀛楁嫾鍥剧殑娓告垙,鎴戦渶瑕佹妸鍥剧墖...
绛旓細鍒濆鍖杛esult涓0锛涗互妯悜涓轰紭鍏堟娴涓涓鐐(姝ょ偣娌℃湁琚亶鍘嗚繃)锛屼互 涓 鍙 涓 宸︾殑鏂瑰紡妫娴嬫鐐(鍙娴嬩竴灞)锛屼紭鍏堥夋嫨鐩稿悓娴锋嫈鐨勭偣璺宠浆(鍗宠烦杞埌閭d釜鐐圭户缁幓閬嶅巻锛屼笖鍙兘璺宠浆鍒版捣鎷斿皬浜庢垨鑰呯瓑浜庝粬鐨勭偣锛屾瘮浠栧ぇ涔熸槸鍒ゆ柇涓轰笉鍙烦杞)锛屼細鍑虹幇涓嬮潰鍑犵鎯呭喌锛(鑻ユ棤璺彲璧扮户缁互妯悜涓轰紭鍏 鍙栬繕鏈亶鍘...
绛旓細Java鏄竴闂ㄩ潰鍚戝璞$紪绋嬭瑷锛屼笉浠呭惛鏀朵簡C++璇█鐨勫悇绉嶄紭鐐癸紝杩樻憭寮冧簡C++閲岄毦浠ョ悊瑙g殑澶氱户鎵裤佹寚閽堢瓑姒傚康锛屽洜姝Java璇█鍏锋湁鍔熻兘寮哄ぇ鍜岀畝鍗曟槗鐢ㄤ袱涓壒寰併侸ava璇█浣滀负闈欐侀潰鍚戝璞$紪绋嬭瑷鐨勪唬琛紝鏋佸ソ鍦板疄鐜颁簡闈㈠悜瀵硅薄鐞嗚锛屽厑璁哥▼搴忓憳浠ヤ紭闆呯殑鎬濈淮鏂瑰紡杩涜澶嶆潅鐨勭紪绋 銆傚湪Java涓彲浠ヤ娇鐢∕ath.abs()鏂规硶鏉...
绛旓細鏄氳繃name鍜宬ey 鍙栧埌 value鍊 //鍥犳,涓轰簡鎬ц兘,璁捐涓涓map,杩欎釜map鐨刱ey 鏄痗onfig鐨刵ame鍜宬ey鎷兼帴璧锋潵鐨 Map<String, Data> map = new LinkedHashMap<String, Data>(); //LinkedHashSet 淇濊瘉寰幆鐨勯『搴 Set<String> nameSet = new LinkedHashSet<String>(); Set<String> key...
绛旓細for (int i = 0; i < kid1.getFeature().length; i++) { sum1 += kid1.getFeature()[i] * 0.25;sum2 += kid2.getFeature()[i] * 0.25;} if (sum1 > sum2) { return sum1;} else { return sum2;} } } 鏈鍚庤禈瑷锛氭垜涔熸槸涓浣java鐖卞ソ鑰咃紝鎶辩潃瀛︿範涓庢帰璁ㄧ殑鎬佸害銆
绛旓細棣栫瘒鍐呭娑电洊浜嗛潰鍚戝璞¤蒋浠跺紑鍙戠殑鍩虹鐭ヨ瘑鍜Java璇█鍩虹锛屾繁鍏ユ祬鍑哄湴闃愯堪浜嗛潰鍚戝璞$紪绋嬬殑鏍稿績鍘熷垯鍜岀壒鎬э紝閫氳繃瀹為檯鐨凧ava缂栫▼绀轰緥锛屽府鍔╄鑰呴愭鐞嗚В鍜屾帉鎻¤繖涓璁捐鐞嗗康鍜岀紪绋嬫柟娉曘傞殢鍚庣殑绔犺妭鑱氱劍浜嶫ava缂栫▼鐨勫疄鐢ㄤ笓棰橈紝鍖呮嫭绯荤粺绫诲簱鐨勮繍鐢ㄣ佸父鐢绠楁硶鐨勮璁°佸浘褰㈢敤鎴风晫闈㈢殑鏋勫缓銆佸紓甯稿鐞嗕笌澶氱嚎绋嬪鐞嗐佹暟鎹...