Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.02.2012, 14:53   #1
vova_makarovych
Пользователь
 
Регистрация: 22.09.2010
Сообщений: 13
По умолчанию Две задачки на Java

1. Строка содержит некоторый текст (на английском языке).
Проверить данная строка является ли палиндром. Строка называется палиндромом если он читается одинаково с право налево.
Например, "aabbaa" - палиндром, "aaba" - непалиндром, "" - пустая строка считается также не палиндромом.

2. Строка задает дату. Например "May 17, 1987" - то есть сначала идет месяц, день и год.
Программа должна выводить на экран Month: May, Day: 17, Year: 1987.

ПЕрвую задачку как решить я незнаю помогите...
Вторую немного решил но ишибок много:
PHP код:
package firstprogram1;

public class 
FirstProgram1 {

   public static 
void main(String[] args) {

     
String str1=" May 17 1987";
     
String str2=str1.substring(0,3);
     
String str3=str1.substring(4,6);
     
String str2=str1.substring(8,11);
     
     
System.out.println("Month:" str2 "Day:" str3 ," Year:" str4.");
    }

vova_makarovych вне форума Ответить с цитированием
Старый 18.02.2012, 16:44   #2
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

1) зависит от того, какие возможности языка вам нужно использовать. И обязательно ли использовать класс String.
Алгоритм:
а) создать новую строку на основе старой, убрав из нее пробелы. Функция replaceAll(String regex, String replacement);
б) перевернуть строку, с помощью
Код:
StringBuffer sb = new StringBuffer(your_str);    
    sb.reverse();
в) перевести полученное обратно в новую строку. Функция sb.toString();
г) сравнить обе получившиеcя строки с помощью equalsIgnoreCase.
Могут быть некоторые нюансы с использованием знаков препинания. Но их можно тоже вырезать из строки с помощью replaceAll.

2) Вторую задачу вы не решили. Потому что если на входе будет строка "September 17 1987", то ваш код не отработает. Тут лучше всего разбить строку по пробелам. С помощью класса StringTokenizer. А потом из получившегося массива вытягивать нужные данные. Так вам не придется задумываться над тем, сколько букв у вас в названии месяца.

Вообще почитайте подробно об этом тут.
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 18.02.2012, 18:39   #3
zaural
Пользователь
 
Аватар для zaural
 
Регистрация: 16.02.2012
Сообщений: 15
По умолчанию

Есть вот такой кодик на С++. Он ищет максимальное симметричное слово в вводимой строке (когда-то тренировался вот и написал). Возможно Вам поможет. У меня работает, но если есть вдруг "косяки", то уж извините.
Код:
#include <iostream.h>
#include <string.h>
#include <ctype.h>

const int MAXSIZE=500;

int main()
{
	char MyString[MAXSIZE]; //вводимая строка
	char prom1[MAXSIZE];     //промежуточный контейнер  1
	char prom2[MAXSIZE];    //промежуточная строка 2
	char finis[MAXSIZE];   //строка ответ
	char space[]=" ,:;.";   //пробел
	char prom[MAXSIZE];
	char* ptr;
	unsigned int L1,L2;
	int i,k;          

	cout<<"String \n";
	cin.getline(MyString,sizeof(MyString));

	ptr=strtok(MyString,space);
	if(ptr)
	{
		strcpy(prom1,ptr);
		strrev(ptr);
		i=stricmp(prom1,ptr);
		if(i==0)
		{
			strcpy(prom,ptr);
	//		cout<<prom<<"\n";
		}

	}
	strcpy(prom2,prom);
	while(ptr)
	{
		ptr=strtok(NULL,space);
		if(ptr)
		{
			strcpy(prom1,ptr);
			strrev(ptr);
			k=stricmp(prom1,ptr);
			if(k==0)
			{
				if(strlen(prom2)<strlen(prom1))
				{

				strcpy(prom2,ptr);
			//	cout<<prom2<<"\n";
				}
				else
				{
					strcpy(prom2,prom2);
				}
			}

			strcpy(finis,prom2);

		}

	}

	cout<<"out = "<<finis<<"\n";

	return 0;
}
zaural вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Две задачки strannik23 Паскаль, Turbo Pascal, PascalABC.NET 0 05.04.2011 10:53
Две задачки Scooby_Doo Паскаль, Turbo Pascal, PascalABC.NET 4 16.12.2010 20:32
две задачки agressenok Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 8 04.12.2010 15:08
две задачки. kardinal94 Помощь студентам 1 01.12.2010 11:52
две задачки на С# Bobrik Помощь студентам 0 01.06.2009 23:50