My favorites | Sign in
Project Home Wiki Issues Source
READ-ONLY: This project has been archived. For more information see this post.
Search
for
  Advanced search   Search tips   Subscriptions

Issue 13 attachment: pal.java (3.1 KB)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
//package palindrom;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class pal {
public static boolean ctrl(String s,int pos,int len,int type)//определяет является ли подстрока с позиции pos и длиной len палиндромом
{
int i;
if (type==2)
{
for(i=pos;i<pos+len;i++)
{
if (i==(pos+(len-1)/2)) return true;
if (s.charAt(i)!=s.charAt(pos+(len-1)-(i-pos))) return false;
}
}
else
{
for(i=pos;i<pos+len;i++)
{
if ((i==pos+(len/2)-1)&&(s.charAt(i)==s.charAt(i+1))) return true;
if (s.charAt(i)!=s.charAt(pos+(len-1)-(i-pos))) return false;
}
}
return true;
}
public static int find(String s,int i,int lim) // нахождение возможных подстрок палиндромов с типом type
{ // type = 1 строка из четного количества символов; type = 2 нечетное кол-во
int j,curr=i,len=0,type=1;
boolean find=false;
for(j=curr;j<s.length();j++)
{
if ((s.charAt(curr)==s.charAt(j))&&(j!=curr)&&(find==false))
{
len=j-curr+1;
find=true;
if (len%2==0) type=1; else type=2;
}
if (ctrl(s,i,len,type)&&(len==lim)) return len;
else find=false;
}
return 0;
}
public static String inp(String s,String input) throws IOException
{
char c;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print(input);
s = br.readLine();
return s;
}
public static void main(String[] args) throws IOException {
// TODO code application logic here
String s="",arr[];int i,j,k,z;char ch = 0;
arr = new String[20];
do
{
BufferedReader b = new BufferedReader(new InputStreamReader(System.in));
s = inp(s,"Enter string ");
for(i=0;i<s.length()-2;i++)
{
for(j=3;j<=s.length();j++)
{
k=find(s,i,j);
if (k!=0)
{
for(z=i;z<k+i;z++)
{
System.out.print(s.charAt(z));
}
System.out.println();
k=0;
}
}
}
System.out.println("Would you like continue? y/n");
ch = (char) b.read();
} while(ch=='y');
}
}
Powered by Google Project Hosting