Palindrome Test with Recursive Method

I was assigned in class to do make a program containing a recursive method that tests if the user's input is a palindrome. My instructor helped us out by giving us some lines of code for us to complete, however rather than helping me, they've only confused me...
package project6;
public class Palindrome {
void main(String[] args) {
        // TODO code application logic here
        char charArray[] = args[0].toCharArray();
    public static Boolean testPalindrome(char[] text, int beg, int end) {
        //First case: the fragment in question is empty
        //This will be the case if beg is > end
        if(beg > end)
            return true;
        //Second case: the fragment contains just one character
        //This will be the case when beg == end.
        if(beg == end)
            return true;
        //Third case: is it of the form "x" + s + "x"
        if(testPalindrome(??, ?, ?))
        else
        return false;
}Firstly,
        if(beg > end)
            return true;How does this statement check if the array is empty? And why use >? Shouldn't it be == ?
Secondly,
        if(beg == end)
            return true;I understand this it to test if there is only 1 character, but don't palindromes with more than 1 character have the same beg and end? So why do this test?
Thirdly,
I don't get why a recursive function is necessary. Wouldn't it be much easier to store the input text into 2 arrays one in its original form and reversed form, and compare the two if they are identical?
I would do that, but he wants our class to follow his way ...

onguy3n wrote:
I don't get why a recursive function is necessary. Wouldn't it be much easier to store the input text into 2 arrays one in its original form and reversed form, and compare the two if they are identical?
I would do that, but he wants our class to follow his way ...I guess your teacher wants to you to learn the recursive way of thinking in this exercise
I'm gonna give u the algorithm of the code your supposed to implement.
boolean isPalindrome(char[] x,int begin,int end)
//if x[begin] equals to x[end]
// return isPalindrome(x,begin+1,end-1)
// else return false
}Now every recursive function will need a terminal condition , this should go right at the beginning of the method. Your terminal condition(s) should be
//if begin>=end return trueAnd yea , ur inital call to the function should be isPalindrome(original array , 0, original array -1)
Edited by: darth_code_r on Nov 24, 2008 2:50 PM

Similar Messages

  • I need some help with recursive methods.

    Here's a method.
    public int m1(int n)
    If(n==1)
    return 25;
    else
    return n + m1(n-1)
    then you solve for:
    m1(6)
    alright, so I get you this up to the 25. How does the 25 get there, why wouldn't it be 1+m1(0)? and the answer for the problem is 45. Could someone explain how you get 25 and 45?
    6+m1(5)
    5+m1(4)
    4+m1(3)
    3+m1(2)
    2+ m1(1)
    25
    m1(6)==45
    thanks.

    How does the 25 get thereYou put it there.
    the answer for the problem is 45It may be easier to see this if you write your list in the reverse order:m(1) = 25
    m(2) = 2 + m(1)   = 27
    m(3) = 3 + m(2)   = 30
    m(4) = 4 + m(3)   = 34
    m(5) = 5 + m(4)   = 39
    m(6) = 6 + m(5)   = 45

  • Recursive WITH (Recursive Subquery Factoring) Never Returns

    11.2.0.2 database on Windows, SQL Developer Version 3.2.20.09, build MAIN-09.87 (Database and SQL Developer are on the same machine. I have also tried connecting to a Linux 11.2 database and have the same results.)
    I've been doing some simple testing with recursive WITH (Recursive Subquery Factoring) and when I run this following statement in SQL*Plus it returns instantly. However when running in SQL Developer it never returns, I've let it run for quite a long time (172 seconds) and gotten nothing, I finally kill the statement. Once I ran it and even killing the job didn't come back. I can get an explain plan but if I try to run it, run as script or autotrace it never returns. I have only one plan in the plan_table for this test, and it's only 4 lines long. No errors, no messages.
    WITH get_plan (query_plan, id, planlevel) as
    select ' '||operation||' '||options||' '||object_name query_plan, id, 1 planlevel
    from plan_table
    where id = 0
    union all
    select lpad(' ',2*planlevel)||p.operation||' '||p.options||' '||p.object_name query_plan, p.id, planlevel+1
    from get_plan g, plan_table p
    where g.id = p.parent_id
    SELECT QUERY_PLAN FROM GET_PLAN ORDER BY PLANLEVEL;

    Hi Jeff, using either give the same results. The query is "running", as is the little graphic with the bouncing gray bar is moving back and forth saying either "Query Results" or "Scriptrunner Task" as appropriate.
    OK this is odd. I run a count(*) on plan_table in SQL*Plus and get 4, in SQL Developer I get 487. Hun? That makes no sense I'm connect as the same user in each. Where are all these other entries coming from and why can't I see them in SQL Plus? Does SQL Developer have it's own PLAN_TABLE?
    **EDIT --- Yes that seems to be the case. The PLAN_ID I see in SQL Plus doesn't even exist in the SQL Deveropler version of the table. OK that's good to know. I assume the plan_table for SQL Developer is local to it somehow? It's not in the database as best I can see.
    Edited by: Ric Van Dyke on Feb 7, 2013 5:19 PM

  • Generic forwarding methods with recursive bounds.

    Hello all,
    I'm attempting to create a forwarding class assoicated with an interface. The interface has a generic method with recursive bounds. The problem relates to ambiguous method calls as the following code segment should demonstrate:
    interface TestInterface
        //generic method with recursive bounds. (use of Comparable<T> is
        // not relevant, any generic class/interface could have been used.)
        <T extends Comparable<T>> T testMethod(T bob);
    //Concrete implementation of the TestInterface.
    class TestClass implements TestInterface
        public <T extends Comparable<T>> T testMethod(T bob)
           return bob;
        public static void main(String[] args)
            TestInterface bob = new TestClass();
            bob.testMethod("blah"); //Works fine.
    class ForwardingClass implements TestInterface
        //Forwarding class composed of a TestClass object. All methods forward calls to this object.
        private final TestClass test;
        public ForwardingClass(TestClass test)
            this.test = test;
        //forwarding method.
        public <T extends Comparable<T>> T testMethod(T bob)
            return test.testMethod(bob);   //Ambiguous testMethod call. Both testMethod (T) in TestClass
                                           //and testMethod (T) in TestInterface match. Very annoying...
        }Therefore, if you could assist with the following issues, it would be greatly appreciated.
    Firstly, I don't think I fully understand why this error is given, so any explanation would be greatly appreciated.
    Secondly, is there any way to get around the problem?
    Thanks in advance,
    Matt.

    My bad. This appears to be an issue with Intellij 8.0M1. I'll create post on the Intellij forums. It compiles absolutely fine from the command line, and using Intellij 7.04. (Probably should have checked that before my initial post...)
    Apologies for wasting your time. Cheers for the replies.
    Matt.

  • Testing ActionScript classes with native methods?

    Hi,
    I have an ActionScript class that I'm writing and would like to test using FlexUnit.
    The only issue is that the ActionScript class has a member in it that is a class with native methods.
    So, I get the following error when trying to run a test of that ActionScript class:
    VerifyError: Error #1079: Native methods are not allowed in loaded code.
    Does anyone know of a way to get around this?  FlexUnit seems not to like native methods being present.
    Thanks,
    Matt

    Hi casdvm,
    by definition, you only own objects that you created using one of the alloc* methods, copy: or new:. All other objects (IIRC with a few noted exceptions) are autoreleased.
    If you create convenience methods in your own class, you should follow the same rule. For example, if you have a class Pet and want to implement the method +petWithName, your code might look something like that:
    + petWithName: (NSString *)name
    return [[[Pet alloc] initWithName: name] autorelease];
    Alex

  • I need help with this recursion method

         public boolean findTheExit(int row, int col) {
              char[][] array = this.getArray();
              boolean escaped = false;
              System.out.println("row" + " " + row + " " + "col" + " " + col);
              System.out.println(array[row][col]);
              System.out.println("escaped" + " " + escaped);
              if (possible(row, col)){
                   System.out.println("possible:" + " " + possible(row,col));
                   array[row][col] = '.';
              if (checkBorder(row, col)){
                   System.out.println("check border:" + " " + checkBorder(row,col));
                   escaped = true;
              else {
                    System.out.println();
                    escaped = findTheExit(row+1, col);
                    if (escaped == false)
                    escaped = findTheExit(row, col+1);
                    else if (escaped == false)
                    escaped = findTheExit(row-1, col);
                    else if (escaped == false)
                    escaped = findTheExit(row, col-1);
              if (escaped == true)
                   array[row][col] = 'O';
              return escaped;
         }I am having difficulties with this recursion method. What I wanted here is that when :
    if escaped = findTheExit(row+1, col);  I am having trouble with the following statement:
    A base case has been reached, escaped(false) is returned to RP1. The algorithm backtracks to the call where row = 2 and col = 1 and assigns false to escaped.
    How do I fix this code?
    I know what's wrong with my code now, even though that if
    if (possible(row, col))
    [/code[
    returns false then it will go to if (escaped == false)
                   escaped = findTheExit(row, col+1);
    how do I do this?

    Okay I think I got the problem here because I already consult with the instructor, he said that by my code now I am not updating my current array if I change one of the values in a specific row and column into '.' . How do I change this so that I can get an update array. He said to me to erase char[][] array = getArray and replace it with the array instance variable in my class. But I don't have an array instance variable in my class. Below is my full code:
    public class ObstacleCourse implements ObstacleCourseInterface {
         private String file = "";
         public ObstacleCourse(String filename) {
              file = filename;
         public boolean findTheExit(int row, int col) {
              boolean escaped = false;
              //System.out.println("row" + " " + row + " " + "col" + " " + col);
              //System.out.println(array[row][col]);
              //System.out.println("escaped" + " " + escaped);
              if (possible(row, col)){
                   //System.out.println("possible:" + " " + possible(row,col) + "\n");
                   array[row][col] = '.';
                   if (checkBorder(row, col)){
                   escaped = true;
                   else {
                    escaped = findTheExit(row+1, col);
                    if (escaped == false)
                    escaped = findTheExit(row, col+1);
                    else if (escaped == false)
                    escaped = findTheExit(row-1, col);
                    else if (escaped == false)
                    escaped = findTheExit(row, col-1);
              if (escaped == true)
                   array[row][col] = 'O';
              return escaped;
         public char[][] getArray() {
              char[][] result = null;
              try {
                   Scanner s = new Scanner(new File(file));
                   int row = 0;
                   int col = 0;
                   row = s.nextInt();
                   col = s.nextInt();
                   String x = "";
                   result = new char[row][col];
                   s.nextLine();
                   for (int i = 0; i < result.length; i++) {
                        x = s.nextLine();
                        for (int j = 0; j < result.length; j++) {
                             result[i][j] = x.charAt(j);
              } catch (Exception e) {
              return result;
         public int getStartColumn() {
              char[][] result = this.getArray();
              int columns = -1;
              for (int i = 0; i < result.length; i++) {
                   for (int j = 0; j < result[i].length; j++) {
                        if (result[i][j] == 'S')
                             columns = j;
              return columns;
         public int getStartRow() {
              char[][] result = this.getArray();
              int row = -1;
              for (int i = 0; i < result.length; i++) {
                   for (int j = 0; j < result[i].length; j++) {
                        if (result[i][j] == 'S')
                             row = i;
              return row;
         public boolean possible(int row, int col) {
              boolean result = false;
              char[][] array = this.getArray();
              if (array[row][col] != '+' && array[row][col] != '.')
                   result = true;
              return result;
         public String toString() {
              String result = "";
              try {
                   Scanner s = new Scanner(new File(file));
                   s.nextLine();
                   while (s.hasNextLine())
                        result += s.nextLine() + "\n";
              } catch (Exception e) {
              return result;
         public boolean checkBorder(int row, int col) {
              char[][] array = this.getArray();
              boolean result = false;
              int checkRow = 0;
              int checkColumns = 0;
              try {
                   Scanner s = new Scanner(new File(file));
                   checkRow = s.nextInt();
                   checkColumns = s.nextInt();
              } catch (Exception e) {
              if ((row + 1 == checkRow || col + 1 == checkColumns) && array[row][col] != '+')
                   result = true;
              return result;
    I thought that my problem would be not to read the file using the try and catch everytime in the method. How do I do this?? Do I have to create an array instance variable in my class?

  • SQL Server Express Performance Limitations With OGC Methods on Geometry Instances

    I will front load my question.  Specifically, I am wondering if any of the feature restrictions with SQL Server Express cause performance limitations/reductions with OGC methods on geometry instances, e.g., STIntersects?  I have spent time reading
    various documents about the different editions of SQL Server, including the Features Supported by the Editions of SQL Server 2014, but nothing is jumping out at me.  The
    limited information on spatial features in the aforementioned document implies spatial is the same across all editions.  I am hoping this is wrong.
    The situation....  I have roughly 200,000 tax parcels within 175 taxing districts.  As part of a consistency check between what is stored in tax records for taxing district and what is identified spatially, I set up a basic point-in-polygon query
    to identify the taxing district spatially and then count the number of parcels within in taxing district.  Surprisingly, the query took 66 minutes to run.  As I pointed out, this is being run on a test machine with SQL Server Express.
    Some specifics....  I wrote the query a few different ways and compared the execution plans, and the optimizer always choose the same plan, which is good I guess since it means it is doing its job.  The execution plans show a 'Clustered Index Seek
    (Spatial)' being used and only costing 1%.  Coming in at 75% cost is a Filter, which appears to be connected to the STIntersects predicate.  I brute forced alternate execution plans using HINTS, but they only turned out worse, which I guess is also
    good since it means the optimizer did choose a good plan.  I experimented some with changing the spatial index parameters, but the impact of the options I tried was never that much.  I ended up going with "Geometry Auto Grid" with 16 cells
    per object.
    So, why do I think 66 minutes is excessive?  The reason is that I loaded the same data sets into PostgreSQL/PostGIS, used a default spatial index, and the same query ran in 5 minutes.  Same machine, same data, SQL Server Express is 13x slower than
    PostgreSQL.  That is why I think 66 minutes is excessive.
    Our organization is mostly an Oracle and SQL Server shop.  Since more of my background and experience are with MS databases, I prefer to work with SQL Server.  I really do want to understand what is happening here.  Is there something I can
    do different to get more performance out of SQL Server?  Does spatial run slower on Express versus Standard or Enterprise?  Given I did so little tuning in PostgreSQL, I still can't understand the results I am seeing.
    I may or may not be able to strip the data down enough to be able to send it to someone.

    Tessalating the polygons (tax districts) is the answer!
    Since my use of SQL Server Express was brought up as possibly contributing to the slow runtime, the first thing I did was download an evaluation version of Enterprise Edition.  The runtime on Enterprise Edition dropped from 66 minutes to 57.5 minutes.
     A reduction of 13% isn't anything to scoff at, but total runtime was still 11x longer than in PostgreSQL.  Although Enterprise Edition had 4 cores available to it, it never really spun up more than 1 when executing the query, so it doesn't seem
    to have been parallelizing the query much, if at all.
    You asked about polygon complexity.  Overall, a majority are fairly simple but there are some complex ones with one really complex polygon.  Using the complexity index discussed in the reference thread, the tax districts had an average complexity
    of 4.6 and a median of 2.7.  One polygon had a complexity index of 120, which was skewing the average, as well as increasing the runtime I suspect.  Below is a complexity index breakdown:
    Index
    NUM_TAX_DIST
    1
    6
    <2
    49
    <3
    44
    <4
    23
    <5
    11
    <6
    9
    <7
    9
    <8
    4
    <9
    1
    <10
    4
    >=10
    14
    Before trying tessellation, I tweaked the spatial indexes in several different ways, but the runtimes never changed by more than a minute or two.  I reset the spatial indexes to "geometry auto grid @ 32" and tried out your tessellation functions
    using the default of 5000 vertices.  Total runtime 2.3 minutes, a 96% reduction and twice as fast as PostgresSQL!  Now that is more what I was expecting before i started.
    I tried using different thresholds, 3,000 and 10,000 vertices but the runtimes were slightly slower, 3.5 and 3.3 minutes respectively.  A threshold of 5000 definitely seems to be a sweet spot for the dataset I am using.  As the thread you referenced
    discussed, SQL Server spatial functions like STIntersect appear to be sensitive to the number of vertices of polygons.
    After reading your comment, it reminded me of some discussions with Esri staff about ArcGIS doing the same thing in certain circumstances, but I didn't go as far as thinking to apply it here.  So, thanks for the suggestion and code from another post.
     Once I realized the SRID was hard coded to 0 in tvf_QuarterPolygon, I was able to update the code to set it to the same as the input shape, and then everything came together nicely.

  • Issue with recursive join and filter records

    I am having an issue with recursive join and filtering records for the following rules. The table, sample records, test script and rules are as below
    drop table PC_COVKEY_PD;
    create table PC_COVKEY_PD (
    PC_COVKEY varchar(50),
    COVERAGE_NUMBER varchar(3),
    SEQUENCE_ALPHA  varchar(3),
    TRANSACTION_TYPE varchar(3),
    COV_CHG_EFF_DATE date,
    TIMESTAMP_ENTERED timestamp
    delete from PC_COVKEY_PD;
    commit;
    Insert into PC_COVKEY_PD values ('10020335P8017MT0010012','001','001','02',to_date('01/FEB/2010','DD/MON/RRRR'),to_timestamp('02/JAN/2010 01:55:59.990216 AM','DD/MON/RRRR HH12:MI:SS.FF6 AM'));
    Insert into PC_COVKEY_PD values ('10020335P8017MT0050012','005','001','02',to_date('01/FEB/2010','DD/MON/RRRR'),to_timestamp('02/JAN/2010 01:56:00.268099 AM','DD/MON/RRRR HH12:MI:SS.FF6 AM'));
    Insert into PC_COVKEY_PD values ('10020335P8017MT0010032','001','003','03',to_date('14/JAN/2011','DD/MON/RRRR'),to_timestamp('14/JAN/2011 04:25:19.018217 PM','DD/MON/RRRR HH12:MI:SS.FF6 AM'));
    Insert into PC_COVKEY_PD values ('10020335P8017MT0010042','001','004','03',to_date('21/JAN/2011','DD/MON/RRRR'),to_timestamp('21/JAN/2011 04:00:31.719444 PM','DD/MON/RRRR HH12:MI:SS.FF6 AM'));
    Insert into PC_COVKEY_PD values ('10020335P8017MT0050022','005','002','03',to_date('21/JAN/2011','DD/MON/RRRR'),to_timestamp('21/JAN/2011 04:02:48.953594 PM','DD/MON/RRRR HH12:MI:SS.FF6 AM'));
    commit;
    --select * from PC_COVKEY_PD order by COV_CHG_EFF_DATE,TIMESTAMP_ENTERED;
    PC_COVKEY          COVERAGE_NUMBER     SEQUENCE_ALPHA     TRANSACTION_TYPE     COV_CHG_EFF_DATE     TIMESTAMP_ENTERED
    10020335P8017MT0010012          001     001                  02                          01/FEB/2010            02/JAN/2010 01:55:59.990216 AM
    10020335P8017MT0050012          005     001                  02                      01/FEB/2010            02/JAN/2010 01:56:00.268099 AM
    10020335P8017MT0010032          001     003                  03                      14/JAN/2011            14/JAN/2011 04:25:19.018217 PM
    10020335P8017MT0010042          001     004                  03                      21/JAN/2011            21/JAN/2011 04:00:31.719444 PM
    10020335P8017MT0050022          005     002                  03                      21/JAN/2011             21/JAN/2011 04:02:48.953594 PM
    */Rule;
    Every PC_COVKEY, query should recursively join and generate set of records depending on latest SEQUENCE_ALPHA for the coverage number at that point of time. For ex,
    for 10020335P8017MT0010042 (4 row) should generate 2 records
    1. 10020335P8017MT0010042001004 (PC_COVKEY || COVERAGE_NUMBER || latest SEQUENCE_ALPHA--004 for cover 001), SEQUENCE_ALPHA 001 for cover 001 is not the latest for 10020335P8017MT0010042.
    2. 10020335P8017MT0010042005001 (coverage number 005, and latest sequence alpha-001 for cover 005).
    SEQUENCE_ALPHA 002 for cover 005 is not the latest for 10020335P8017MT0010042 as it happened later stage.
    for 10020335P8017MT0050022 (5 row) should generate 2 records as
    1. 10020335P8017MT0050022001004 (PC_COVKEY || COVERAGE_NUMBER || latest SEQUENCE_ALPHA--004 for cover 001),
    2. 10020335P8017MT0010042005002 (coverage number 005, and latest sequence alpha-002 for cover 005)
    WITH SNAPSHOT_CVR_CTP as (
    SELECT pcd1.PC_COVKEY,
           pcd1.PC_COVKEY||pcd2.COVERAGE_NUMBER||pcd2.SEQUENCE_ALPHA as cov_key,
           pcd2.COVERAGE_NUMBER,
           pcd2.SEQUENCE_ALPHA,
           pcd2.COVERAGE_NUMBER||pcd2.SEQUENCE_ALPHA as CVRSEQ,
           max(pcd2.COVERAGE_NUMBER||pcd2.SEQUENCE_ALPHA) over (partition by pcd1.PC_COVKEY, pcd1.COVERAGE_NUMBER
           order by pcd2.COV_CHG_EFF_DATE, pcd2.TIMESTAMP_ENTERED) as MaxSeq,
           pcd2.COV_CHG_EFF_DATE,     
           pcd2.TIMESTAMP_ENTERED
    FROM
    PC_COVKEY_PD pcd1,
    PC_COVKEY_PD pcd2
    select * from SNAPSHOT_CVR_CTP SC
    WHERE sc.PC_COVKEY = '10020335P8017MT0010042'  -- 4 row
    --AND  COVERAGE_NUMBER||SC.MAXSEQ = COVERAGE_NUMBER||SEQUENCE_ALPHA
    ORDER BY TIMESTAMP_ENTERED
    PC_COVKEY     COV_KEY     COVERAGE_NUMBER     SEQUENCE_ALPHA     CVRSEQ          MAXSEQ     COV_CHG_EFF_DATE     TIMESTAMP_ENTERED
    10020335P8017MT0010042     10020335P8017MT0010042001001     001     001     001001     001001     01/FEB/2010     02/JAN/2010 01:55:59.990216 AM
    10020335P8017MT0010042     10020335P8017MT0010042005001     005     001     005001     005001     01/FEB/2010     02/JAN/2010 01:56:00.268099 AM
    10020335P8017MT0010042     10020335P8017MT0010042001003     001     003     001003     005001     14/JAN/2011     14/JAN/2011 04:25:19.018217 PM
    10020335P8017MT0010042     10020335P8017MT0010042001004     001     004     001004     005001     21/JAN/2011     21/JAN/2011 04:00:31.719444 PM
    10020335P8017MT0010042     10020335P8017MT0010042005002     005     002     005002     005002     21/JAN/2011     21/JAN/2011 04:02:48.953594 PM
    I am trying to filter row using MAXSEQ but at the moment MAXSEQ values are not coming as expected. I expect following value for COV_KEY combination
    COV_KEY                                         MAXSEQ
    10020335P8017MT0010042001001     001004
    10020335P8017MT0010042005001     005001 -- match
    10020335P8017MT0010042001003     001004
    10020335P8017MT0010042001004     001004 -- match
    10020335P8017MT0010042005002     005001Would appreciate if anyone can get MAxSEQ as expected.

    Something like..
    with dist_cov_numbers as
      select distinct coverage_number cov_number
      from PC_COVKEY_PD
    all_data as
      select pcd.*,d.cov_number new_coverage_number,
             max(decode(coverage_number,d.cov_number,sequence_alpha))
                  over( partition by d.cov_number
                        order by COV_CHG_EFF_DATE,TIMESTAMP_ENTERED
                                  ) max_seq
      from PC_COVKEY_PD pcd,dist_cov_numbers d
    select pc_covkey,pc_covkey||new_coverage_number||max_seq new_key,
           pc_covkey||coverage_number||sequence_alpha actual_key
    from all_data
    order by COV_CHG_EFF_DATE, TIMESTAMP_ENTERED;
    PC_COVKEY                   NEW_KEY                           ACTUAL_KEY                     
    10020335P8017MT0010012      10020335P8017MT0010012001001      10020335P8017MT0010012001001     
    10020335P8017MT0010012      10020335P8017MT0010012005         10020335P8017MT0010012001001     
    10020335P8017MT0050012      10020335P8017MT0050012001001      10020335P8017MT0050012005001     
    10020335P8017MT0050012      10020335P8017MT0050012005001      10020335P8017MT0050012005001     
    10020335P8017MT0010032      10020335P8017MT0010032001003      10020335P8017MT0010032001003     
    10020335P8017MT0010032      10020335P8017MT0010032005001      10020335P8017MT0010032001003     
    10020335P8017MT0010042      10020335P8017MT0010042005001      10020335P8017MT0010042001004     
    10020335P8017MT0010042      10020335P8017MT0010042001004      10020335P8017MT0010042001004     
    10020335P8017MT0050022      10020335P8017MT0050022005002      10020335P8017MT0050022005002     
    10020335P8017MT0050022      10020335P8017MT0050022001004      10020335P8017MT0050022005002 
    10 rows selected Edited by: jeneesh on Nov 22, 2012 10:54 AM

  • Help with recursive function to print number patterns

    I'm sorry for having to ask for homework help - I'm badly stuck on this! Can someone give me a kick in the right direction with this?
    need a recursive function with a single positive int parameter n. the function should write (2^n - 1) integers and should be in the following pattern...
    n = 1, Output: 1
    n = 2, Output: 1 2 1
    n = 3, Output: 1 2 1 3 1 2 1
    n = 4, Output: 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1
    n = 5, Output: 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 5 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1
    function should valid for all positive integer values of n
    This was tagged as a 'short' problem...so it shouldnt take too much code...I am hung on on the following:
    *Do I keep track of the numbers printed, if so how?  I only have a single parameter to call with so I am confused as to how I could get an entire pattern without keeping track of the history
    *I had initially thought it would be necessary to cut it in half and do the 2nd half backwards (ie: for n=3, I would take care of the 1 2 1 - then 3 - then 1 2 1...but even then it seems like I could cut 1 2 1 in half the same way and therefor I should be able to do ALL of it in single parts...
    Can someone veer me in the right direction here? I'm really lost with this.

    This was tagged as a 'short' problem...so it shouldnt
    take too much code...Yeah, the method body could be done in a few lines.
    I am hung on on the following:
    *Do I keep track of the numbers printed, if so how?Not explicitly. Use the call stack. That is, use the fact that when you're recursing, the previous values of numbers are preserved in the previous method invocation.
    I only have a single parameter to call with so I am
    confused as to how I could get an entire pattern
    without keeping track of the historyYou don't have to store anything across method invocations.
    I had initially thought it would be necessary to cut
    it in half and do the 2nd half backwards (ie: for
    n=3, I would take care of the 1 2 1 - then 3 - then 1
    2 1...but even then it seems like I could cut 1 2 1
    in half the same way and therefor I should be able to
    do ALL of it in single parts...No, it's MUCH simpler than that. It's easier than yo uthink.
    Can someone veer me in the right direction here? I'm
    really lost with this.Try this simpler version of the problem:
    Write a recursive method that creates this output:
    n = 1: 1
    n = 2: 1 2
    n = 3: 1 2 3
    And try this simpler version:
    n = 1: 1
    n = 2: 2 1
    n = 3: 3 2 1

  • Issue with addPartialTarget method (Pop-up window)

    Hi, I am facing an issue with addPartialTarget method (pop-up window case). Please refer the thread Re: popup dialog problem
    If we are using addPartialTarget method, should the managed bean be in session scope? I've set it is in request scope. It works fine with 1 user. But if we test with more than 1 user using HP mercury load runner, it is failing and giving the following exception related to partial target. What should be the solution for this issue? This is very urgent. Even after setting the managed bean in session scope, I am getting the same error as shown below:
    java.lang.ArrayIndexOutOfBoundsException: -1
    at java.util.ArrayList.get(Unknown Source)
    at oracle.adfinternal.view.faces.renderkit.core.ppr.PPRResponseWriter._popPartialTarget(PPRResponseWriter.java:223)
    at oracle.adfinternal.view.faces.renderkit.core.ppr.PPRResponseWriter.endElement(PPRResponseWriter.java:138)
    at oracle.adfinternal.view.faces.ui.ElementRenderer.postrender(ElementRenderer.java:81)
    at oracle.adfinternal.view.faces.ui.laf.base.xhtml.XhtmlLafRenderer.postrender(XhtmlLafRenderer.java:225)
    at oracle.adfinternal.view.faces.ui.BaseRenderer.render(BaseRenderer.java:83)
    at oracle.adfinternal.view.faces.ui.laf.base.xhtml.XhtmlLafRenderer.render(XhtmlLafRenderer.java:69)
    at oracle.adfinternal.view.faces.ui.BaseUINode.render(BaseUINode.java:346)
    at oracle.adfinternal.view.faces.ui.BaseUINode.render(BaseUINode.java:301)
    at oracle.adfinternal.view.faces.ui.composite.UINodeRenderer.renderWithNode(UINodeRenderer.java:90)
    at oracle.adfinternal.view.faces.ui.composite.UINodeRenderer.render(UINodeRenderer.java:36)
    at oracle.adfinternal.view.faces.uinode.UIXComponentUINode.renderInternal(UIXComponentUINode.java:177)
    at oracle.adfinternal.view.faces.uinode.UINodeRendererBase.encodeEnd(UINodeRendererBase.java:53)
    at oracle.adf.view.faces.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:624)
    at oracle.adfinternal.view.faces.renderkit.RenderUtils.encodeRecursive(RenderUtils.java:54)
    at oracle.adfinternal.view.faces.renderkit.core.CoreRenderer.encodeChild(CoreRenderer.java:242)
    at oracle.adfinternal.view.faces.renderkit.core.CoreRenderer.encodeAllChildren(CoreRenderer.java:265)
    at oracle.adfinternal.view.faces.renderkit.core.xhtml.PanelPartialRootRenderer.renderContent(PanelPartialRootRenderer.java:65)
    at oracle.adfinternal.view.faces.renderkit.core.xhtml.BodyRenderer.renderContent(BodyRenderer.java:117)
    at oracle.adfinternal.view.faces.renderkit.core.xhtml.PanelPartialRootRenderer.encodeAll(PanelPartialRootRenderer.java:102)
    at oracle.adfinternal.view.faces.renderkit.core.xhtml.BodyRenderer.encodeAll(BodyRenderer.java:60)
    at oracle.adfinternal.view.faces.renderkit.core.CoreRenderer.delegateRenderer(CoreRenderer.java:281)
    at oracle.adfinternal.view.faces.renderkit.core.xhtml.DocumentRenderer.encodeAll(DocumentRenderer.java:60)
    at oracle.adfinternal.view.faces.renderkit.core.CoreRenderer.encodeEnd(CoreRenderer.java:169)
    at oracle.adf.view.faces.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:624)
    at javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:645)
    at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:568)
    at oracle.adf.view.faces.webapp.UIXComponentTag.doEndTag(UIXComponentTag.java:100)
    at app.App__cusadd_jspx._jspService(_App__cusadd_jspx.java:3274)
    at com.orionserverhttp://Oracle Containers for J2EE 10g (10.1.3.3.0) .http.OrionHttpJspPage.service(OrionHttpJspPage.java:59)
    at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:462)
    at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:594)
    at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:518)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    at com.evermindhttp://Oracle Containers for J2EE 10g (10.1.3.3.0) .server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
    at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:162)
    at com.evermindhttp://Oracle Containers for J2EE 10g (10.1.3.3.0) .server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:623)
    at com.evermindhttp://Oracle Containers for J2EE 10g (10.1.3.3.0) .server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370)
    at com.evermindhttp://Oracle Containers for J2EE 10g (10.1.3.3.0) .server.http.ServletRequestDispatcher.unprivileged_forward(ServletRequestDispatcher.java:287)
    at com.evermindhttp://Oracle Containers for J2EE 10g (10.1.3.3.0) .server.http.ServletRequestDispatcher.access$100(ServletRequestDispatcher.java:51)
    at com.evermindhttp://Oracle Containers for J2EE 10g (10.1.3.3.0) .server.http.ServletRequestDispatcher$2.oc4jRun(ServletRequestDispatcher.java:193)
    at oracle.oc4j.security.OC4JSecurity.doPrivileged(OC4JSecurity.java:283)
    at com.evermindhttp://Oracle Containers for J2EE 10g (10.1.3.3.0) .server.http.ServletRequestDispatcher.forward(ServletRequestDispatcher.java:198)
    at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:346)
    at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:152)
    at oracle.adfinternal.view.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:157)
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:107)
    at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:245)
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:137)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:214)
    at com.evermindhttp://Oracle Containers for J2EE 10g (10.1.3.3.0) .server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
    at oracle.webcache.adf.filter.PageCachingFilter.doFilter(PageCachingFilter.java:274)
    at com.evermindhttp://Oracle Containers for J2EE 10g (10.1.3.3.0) .server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:15)
    at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._invokeDoFilter(AdfFacesFilterImpl.java:228)
    at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._doFilterImpl(AdfFacesFilterImpl.java:197)
    at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl.doFilter(AdfFacesFilterImpl.java:123)
    at oracle.adf.view.faces.webapp.AdfFacesFilter.doFilter(AdfFacesFilter.java:103)
    at com.evermindhttp://Oracle Containers for J2EE 10g (10.1.3.3.0) .server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:17)
    at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:162)
    at com.evermindhttp://Oracle Containers for J2EE 10g (10.1.3.3.0) .server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:17)
    at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:162)
    at com.evermindhttp://Oracle Containers for J2EE 10g (10.1.3.3.0) .server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:621)
    at com.evermindhttp://Oracle Containers for J2EE 10g (10.1.3.3.0) .server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370)
    at com.evermindhttp://Oracle Containers for J2EE 10g (10.1.3.3.0) .server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:871)
    at com.evermindhttp://Oracle Containers for J2EE 10g (10.1.3.3.0) .server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:453)
    at com.evermindhttp://Oracle Containers for J2EE 10g (10.1.3.3.0) .server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:221)
    at com.evermindhttp://Oracle Containers for J2EE 10g (10.1.3.3.0) .server.http.HttpRequestHandler.run(HttpRequestHandler.java:122)
    at com.evermindhttp://Oracle Containers for J2EE 10g (10.1.3.3.0) .server.http.HttpRequestHandler.run(HttpRequestHandler.java:111)
    at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
    at com.evermindhttp://Oracle Containers for J2EE 10g (10.1.3.3.0) .util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
    at java.lang.Thread.run(Unknown Source)

    duplicate
    Frank

  • [svn:osmf:] 11159: Updating unit test with a check to all expected events firing properly.

    Revision: 11159
    Author:   [email protected]
    Date:     2009-10-26 12:12:10 -0700 (Mon, 26 Oct 2009)
    Log Message:
    Updating unit test with a check to all expected events firing properly.
    Modified Paths:
        osmf/trunk/framework/MediaFrameworkIntegrationTest/org/osmf/content/TestContentElementInt egration.as

    camickr wrote:
    Do you really expect us to read all that code to try and understand what you are attempting to do?
    If you need further help then you need to create a "Short, Self Contained, Compilable and Executable, Example Program (SSCCE)", that demonstrates the incorrect behaviour.
    http://homepage1.nifty.com/algafield/sscce.html
    Absolutely not, I wouldn't post such a large amount of code expecting people to read it. I indicated that I believe my error only lies within one of two classes, and that I highlighted the two methods with comments.
    I was told to create an SSCCE as you have mentioned, but I believe all of this code is necessary for the program to run properly, so I only provided it all for compilation purposes.
    I'll check the examples posted, and if I need to I'll see if I can change my methods to use the swing timer class as the first reply mentions, but I did not think this would be necessary.
    Edited by: Drew___ on Nov 29, 2007 3:28 AM
    I have just figured out what my problem was, sorry it was quite a simple mistake. When checking for user input, I was immediately resetting the eventFlag or something afterwards. This meant the object would stop moving as it couldn't remember my last keypress. Thanks for your help, those tutorials are really good.

  • Problem with findAll method in CMP

    I have successfully deployed the CMP entity bean and am testing the findAll method
    when I reaslised that the result returned to the collection is limited to 100
    records, although I have 150 records in the database.
    When I restarted the WLS and ran the test again, the first time I ran findAll,
    it returned 150 records. But when I ran it a second time, it was limited to 100
    again. It seems that the findAll method only works on the first time after I restart
    the WLS.
    Any idea what could be wrong? I am using WLS6.1 and the EJBQL is as follows:
    FROM UnitsEBean var
    Any help would be appreciated. Thanks.
    Chris

    The setting for max heap size is dependent on how your application behaves.
    If you create alot of small temporary objects and you use a large heap size
    such as 512mb then when the full garbage collection runs in the JVM your
    application is completely suspended while GC runs. In practice I have seen
    this take upwards of 15 seconds or more at 512MB. If you have this problem
    you also likely have memory leaks (implicit references to onbjects left
    around) so that the GC does not free up this memory. In practice I have
    experienced better results by running more weblogic instances with smaller
    JVMs than running few weblogic instances with large JVMs.
    The sun Java site has alot of useful documentation on tuning the JVM.
    Francis Sommers
    "Cameron Purdy" <[email protected]> wrote in message
    news:3c1a8284$[email protected]..
    Up your max beans in cache to 10000.
    Peace,
    Cameron Purdy
    Tangosol Inc.
    Tangosol Coherence: Clustered Coherent Cache for J2EE
    Information at http://www.tangosol.com/
    "Chris Yeo" <[email protected]> wrote in message
    news:3c19e569$[email protected]..
    I have successfully deployed the CMP entity bean and am testing thefindAll method
    when I reaslised that the result returned to the collection is limited
    to
    100
    records, although I have 150 records in the database.
    When I restarted the WLS and ran the test again, the first time I ranfindAll,
    it returned 150 records. But when I ran it a second time, it was limitedto 100
    again. It seems that the findAll method only works on the first time
    after
    I restart
    the WLS.
    Any idea what could be wrong? I am using WLS6.1 and the EJBQL is asfollows:
    FROM UnitsEBean var
    Any help would be appreciated. Thanks.
    Chris

  • Help needed with recursion algorithm..

    I can't seems to figure out which recursion method to use, if anyone can give me some advice, pls do..
    Input: There is a row of n elecments with the initial value of 1.
    Output: Change all the 1s to 0s using the following conditions.
    -The first element can change from 1 to 0, and 0 to 1 at any time (without conditions).
    -While the rest of the elements can only be changed to 0 when the preceeding element is 1 and all other elements are 0.
    For example, when n = 3
    1 1 1 - initial state of all elements
    0 1 1 - change first element to 0 w/o condition
    0 1 0 - change third element to 0 as only second element is 1 and rest are 0
    1 1 0 - change first element to 1 w/0 condition
    1 0 0 - change second element to 0 as only first element is 1 and rest are 0
    0 0 0 - change first element to 0 w/o condition
    I really can't think of a recursive method to work this out, and am desperate to know the answer. Can anyone please help?

    Sorry about it, you can change the rest of the bit back to 1 but provided that the preceeding bit is also 1.
    and that makes the question:
    Input: There is a row of n elecments with the initial value of 1.
    Output: Change all the 1s to 0s using the following conditions.
    -The first element can change from 1 to 0, and 0 to 1 at any time (without conditions).
    -While the rest of the elements can only be changed to 0 or 1 when the preceeding element is 1 and all other elements are 0.
    For example, when n = 3
    1 1 1 - initial state of all elements
    0 1 1 - change first element to 0 w/o condition
    0 1 0 - change third element to 0 as only second element is 1 and rest are 0
    1 1 0 - change first element to 1 w/0 condition
    1 0 0 - change second element to 0 as only first element is 1 and rest are 0
    0 0 0 - change first element to 0 w/o condition
    I'll check my the person who sets the question and get back to you guys as soon as possible. Thanks a lot for helping me out.

  • Need help writing a recursive method

    hello, im having problems with this and its already giving me a headache!!
    i have to write a recursive method that receives a parameter n that prints the following:
    1
    12
    123
    1234
    how would i even begin to do this...im lost

    Ernie_9 wrote:
    ok i just got a little problem. it prints
    and i needed
    So its only changing the order it prints it. but where would that be changed? i tried swapping the bottom part where the parameter is modified and the print but it does not workLooks like you are first decrementing the iterator and then incrementing it ....try the other way around

  • Looping test with data

    I have an object that essentially takes a string and output another string.  I wanted to create a single test with a loop and have an array of object that represents the strings to be compared.  However, after doing it I realized that it won't work since it will only test up to the first failure and than exception out.  Is there a way to do this without creating a test method for each pair of strings.  I would really like to avoid that since there will be tons of them.  Plus, my goal will be to store this data in an external xml file.
    Here's the code I have with the loop.
            [Test (Description="Chapter 1 - Numbers")] 
            public function number():void {  
                var tests:Array = [
                    { eq:"59*0=0",                speak:"59 times 0 equals 0"} ,
                    { eq:"102+2,214+15=2,331",    speak:"102 plus 2,214 plus 15 equals 2,331"},
                    { eq:"3--2",                speak:"3 minus negative 2"}
                for each (var test:Object in tests) {
                    Assert.assertEquals(test.speak,getMathSpeak(test.eq));

    What you are looking for is parameterized testing. This will be in our next release but isnt available yet.
    A somewhat cheap way you could handle this now is to compare each example in the loop and push the results onto an array. When the loop is done, if the array is empty, then you do nothing and the test passed. If the array has values, then you can call Assert.fail and pass it the array converted to a string.
    You will still only get one success or failure, but at least you will have some detail about why it failed.
    the parameterized testing is likely still a month or more away from its debut. It is a tricky problem due to the need to unwind it across flash player frames.
    mike

Maybe you are looking for

  • Questions on JarEntry and File

    Hi, I am wondering what a JarEntry represents? All files and directories inside a JarFile? I can get the number of JarEntries using the following: int numOfEntries = jarFile.size();Then if I extract this jar and use a small program to recursively vis

  • Adobe Acrobat pro XI

    i purchased adobe acrobat pro XI  student edition and I am trying to install it on my desktop and laptop. It installed on the laptop but not the desk top can you assist?

  • Users can see, but can't open image files

    We store all of our digital photos (jpg's) on an Xserve RAID attached to an Xserve. Twice in the last 3 weeks I have started getting calls from staff members to tell me that they can see the files but can't open them. The jpg files aren't recognized.

  • Oracle RAC stop working when i move virtual machine to another computer.

    Hi! I have OGI and one database RAC installed in two virtual machines (VMWare Server 2.02) . They are working fine. These virtual machines are using a DNS installeld on the host machine to get the SCAN address. But my problems began when i tried to c

  • WDS 2008R2 install storage drivers?

    Hey, so I had a new type of server come in today and I have my WDS setup. everything I guess was ready to go with the older servers we had - driver wise. no problems... So when these new servers first tried to boot into the PXE, it gave me an error a