بسم الله الرحمن الرحيم
كيف يمكن عمل برنامج لعد عدد الاقواس المتساوية واذا كانت متساوبة بضيف سطر جديد ثم يبدا العد
اقصد لو
(np(np1 (n[data]))), vp(vp1(person(person))),
ان اخذ ان عدد ( الاقواس اليمين = الاقواس اليسار
يضاف سطر جديد
بسم الله الرحمن الرحيم
كيف يمكن عمل برنامج لعد عدد الاقواس المتساوية واذا كانت متساوبة بضيف سطر جديد ثم يبدا العد
اقصد لو
(np(np1 (n[data]))), vp(vp1(person(person))),
ان اخذ ان عدد ( الاقواس اليمين = الاقواس اليسار
يضاف سطر جديد
stack
السلام عليكم
أنا عندي فكرة أخرى
انه تعمل اتنين counter و بعدين تمسك كل حرف character في string تبعتك
من خلال الميثود charat و تقارن إذا كان ) ضيف واحد للكاونتر الأول إذا كان ( ضيف واحد للكاونتر الثاني
و في نهاية الstring بتقارن 2 كاونتر اذا بساووا بعض بكونوا الأقواس متساويين إذا لا العكس
تم تعديل هذه المشاركة بواسطة jfriend في 13 فبراير 2007 في 23:26
السلام عليكم
or ( int i=0;i< s1.length()+1; i++ )
{
int countLeft=0;
int coutRight=0;
if( s1.charAt( i )==('(') )
countLeft++;
if ( v == (')') )
coutRight++;
output+=v;
if (countLeft==coutRight)
output+="\n";
لكن حين التشغيل يعطيني
exception in thread main
java.lang.stringindexoutofboundsexception
string index out of range 133
مع اني اريد ان اتعامل مع حجم اكبر string
ما العمل
قد يكون السبب هو (+1) الموجود في شرط حلقة for
حلول الاخ عيسي في زاوية 90 ْ
ما رأيك في هذا المثال
package test;
// import java.util.Stack;
//import java.io.IOException;
class BracketChecker {
private String input;
public BracketChecker(String in) {
input = in;
}
public void check() {
int stackSize = input.length();
Stack theStack = new Stack(stackSize);
for (int j = 0; j < input.length(); j++)
{
char ch = input.charAt(j);
switch (ch) {
case '{': // opening symbols
case '[':
case '(':
theStack.push(ch); // push them
break;
case '}': // closing symbols
case ']':
case ')':
if (!theStack.isEmpty()) // if stack not empty,
{
char chx = theStack.pop(); // pop and check
if ((ch == '}' && chx != '{') || (ch == ']' && chx != '[')
|| (ch == ')' && chx != '('))
System.out.println("Error: " + ch + " at " + j);
} else
// prematurely empty
System.out.println("Error: " + ch + " at " + j);
break;
default: // no action on other characters
break;
}
}
if (!theStack.isEmpty())
System.out.println("Error: missing right delimiter");
}
public static void main(String[] args) {
String input = "{Java [Source] (and)( {[(Support)]}}";
BracketChecker theChecker = new BracketChecker(input);
theChecker.check();
}
}
class Stack {
private int maxSize;
private char[] stackArray;
private int top;
public Stack(int max) {
maxSize = max;
stackArray = new char[maxSize];
top = -1;
}
public void push(char j) {
stackArray[++top] = j;
}
public char pop() {
return stackArray[top--];
}
public char peek() {
return stackArray[top];
}
public boolean isEmpty() {
return (top == -1);
}
}http://www.java2s.com/Code/Java/Collection...cketChecker.htm
تم تعديل هذه المشاركة بواسطة ali7876 في 14 فبراير 2007 في 09:02
بسم الله الرحمن الرحيم
اجل المشكلة كانت في +1
لكن كيف لي ان اضيف سطر جديد حين لا تكون الاقواس متشابهة
ما كتبته دائما يضيف سطر جديد
وطذلك كيف لي ان اخذ اول كلمة في سطر
هل في
substring
من 0 الى (
السلام عليكم
اقتباسهل فيsubstring
من 0 الى (
نعم هو string takenizer
بس مش فاكرة بالزبط إش الconstructor تبعتها بتأخد parameter
بس فاكرة واحد منهم بأخد ال string المطلوبة و التالت بياخد delemiter و هو
اش الفاصل أو المقسم كالمسافة أو السلاش أو الفاصله فبإمكانك تستحدم بدلهم ال)
يااخواني نستطيع ان نحل كثير من الاسئله باكثر من طريقه
ولكن عندما يكون هناك Structure او كلاس موجود ويقدم لنا هذه الخدمه لماذا لانستخدمه ؟
كلام الأخ jfriend بغض النظر هو صحيح ، ولكن لماذا في كل مره نستخدم نفس الاساليب ؟ ( for loops counters )
تحليل المشكله وتصورها يعطيك بعد أكبر لمعرفة ماذا تريد
وبالطرف المقابل حتى لو حليته بدون استخدام stack يجب ان تقارن حلك مع حلول المبرمجين المحترفين ، فهنا قوقل يوضح لك أين تقف من برمجة الجافا
السلام عليكم
يا أخ عيسى إذا ممكن تحكيلنا فكرة الحل عن طريق stack
طبعا إذا ما في غلبة. :)
تم تعديل هذه المشاركة بواسطة jfriend في 14 فبراير 2007 في 17:31
بسم الله الرحمن الرحيم
معاك يا اخي عيسى في كلامك
واود ان تبدا صفحة تشرح فيها data strucuter
لان ما عندي من كتب الجافا لا يوجد فيها
نعم نريد التعلم وان تصبح لدينا مهارات المبرمجين المحترفين
فلتبدا وكلنا معك
هذا الموضوع مغلق.
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…