Комментариев нет

  1. [quote="OlgaT":246ybvuq][quote="Algo":246ybvuq][quote="OlgaT":246ybvuq]Кстати, ирония судьбы: следующее задание, которое нам дали — написать библиотеку менеджер памяти. Для оперативной памяти, правда, но все же. :lol:[/quote:246ybvuq]
    интересно посмотреть…[/quote:246ybvuq]
    Интересно посмотреть задание или результат? :wink:[/quote:246ybvuq]
    да и то и другое

  2. [quote="OlgaT":1vbtthh0][quote="Ghost":1vbtthh0]
    Наверняка и тот программист с десятилетним стажем не знал/забыл что такое палиндромы, дай вы ему определение — да нефиг делать там писать. Просто это упражнение для вас в школе придумали, вот сами его и решайте, а не «помощи ищите». Может вам еще помочь цикл вложенный написать, рекурсию или алгоритм O(n2) в O(n) оптимизировать?

    Вы можете вменять программисту незнание дизайн паттернов, но незнание авторов детских книжек — не можете. Хотя он с удовольствием и быстро напишет вам работающий каталог этих самых книжек, если грамотно поставите задачу.

    [/quote:1vbtthh0]
    Тот программист был моим другом. Он пришел ко мне в гости, я в это время делала домашнее задание. Я сказала ему, что застряла на одном задании и, коль уж он программист, то не мог бы он помочь. Он согласился.

    Я дала ему почитать задание: Écrire une méthode qui prend un entier en argument et qui retourne true si cet entier est un palindrome. Un entier palindrome est un nombre qui une fois inversé reste identique (ex: 1234321).

    Он сел и начал писать. Неудачно. В результате пришлось доделывать самой. Но вы же, конечно, знаете лучше меня, как все было. :lol:

    Если человек не может прочитать детскую книжку, то я не представлю, как он читает взрослые.[/quote:1vbtthh0]

    он наверно за другим пришел? :wink: а ему задачки
    лучче у гугла спросить уже тогда

  3. [quote="loco":2hwacw5o]
    А вон там ниже Ольга отличное решение предложилв:)
    Хотя, в варианте tatata не должно сработать, или нет?
    Я, повторюсь, в алгоритмах не силен:(
    Надо подумать[/quote:2hwacw5o]
    не должно сработаь, но сработает.
    напиши юнит тест ;)
    ЗЫ туплю, не сработает — 2 нечетных группы ttt aaa

  4. [quote="loco":nts7b3ts]
    не, не понял я что такое палиндром
    как обьяснили — понял
    самое простое решение, в лоб — определяем длины строк, и если одинаковые, сравниваем в 1-м цыкле посимвольно с начала и конца
    Проблема в том, что если это с и char*, то надо звать strlen, а он делает проход до первого нуля
    итого — 3 прохода, включая for
    Хотелось бы в 1
    [/quote:nts7b3ts]

    Извините, я давно не заходил…

    Ты тоже еще тот программист, прости Господи… использовать нужно соответствующий инструментарий и не придется сочинять.

    Даже для более сложного варианта, где палиндромы нужно искать в строках текста грубая перл программа будет состоять из циклов while и foreach: первый, основной — для разбора строки на массив слов, исключающий знаки препинания, второй , внутренний — оценка элементов массива слов на наличие палиндрома. Для «перевертывания» слова там есть прекрасная текстовая функция reverse… Ну как бы и все… строк 10-15 кода со всеми декларациями.

    П.С.: если что, дяденьки, то я не настоящий сварщик, я типа сисадмин

  5. [quote="elefant":8dmxqhbn][
    использовать нужно соответствующий инструментарий и не придется сочинять.

    Даже для более сложного варианта, где палиндромы нужно искать в строках текста грубая перл программа будет состоять из циклов while и foreach: первый, основной — для разбора строки на массив слов, исключающий знаки препинания, второй , внутренний — оценка элементов массива слов на наличие палиндрома. Для «перевертывания» слова там есть прекрасная текстовая функция reverse… Ну как бы и все… строк 10-15 кода со всеми декларациями.

    П.С.: если что, дяденьки, то я не настоящий сварщик, я типа сисадмин[/quote:8dmxqhbn]
    ну так он нативный С вспомнил. и реверс нынче во всех языках есть, и на перле кроме сисадминов уже не пишут…

  6. [quote="OlgaT":1l0lofpj][quote="loco":1l0lofpj][quote="OlgaT":1l0lofpj]
    А запомнить длину строки один раз, чтобы не бегать?[/quote:1l0lofpj]

    Дык, вызов strlen — уже пробежали[/quote:1l0lofpj]
    Ну так один раз, больше strlen не вызывать.[/quote:1l0lofpj]
    он пытается объяснить алгоритмичческую сложность.
    проходишь один раз все элементы массива, вот и n, два раза — 2n
    А strlen — за просто так еще один проход требует, если длина строки заранее неизвестна.

  7. [quote="Algo":219zr5cb]
    ну так он нативный С вспомнил. и реверс нынче во всех языках есть, и на перле кроме сисадминов уже не пишут…[/quote:219zr5cb]
    Он бы еще gw basic вспомнил :lol:

    На, Локо, можешь количество строк посчитать…

    [code:219zr5cb]#!/usr/bin/perl
    use strict;
    use warnings;

    open (MYFILE, ‘data.txt’);
    while (<MYFILE>) {
    $line = chomp(lc($_));
    my @words = qw($line);
    foreach my $word (@words) {
    my $check = reverse $word;
    if ($check eq $word) {
    print "Found palindrome: $word\n";
    }
    }
    close (MYFILE);[/code:219zr5cb]

  8. [quote="Algo":18kem86b]он наверно за другим пришел? :wink: а ему задачки[/quote:18kem86b] т.е. всех условий задачи нам до конца не раскрыли, как всегда: решал и не коллега, а друг, и не на работе, а дома, и не на трезвую голову, а по пьяни, и она всё время вокруг него ходила в просвечивающемся халатике с бодро выступающими вторичными половыми признаками. :lol: :lol: Но настоящий программист, конечно, не должен был обращать на это внимание и стоически крапать столь важный алгоритм, поставив на кон своё профессиональное реноме и успех томного вечера… :kos: В результате компилятор на тетрадном листе выдал ошибку «Access denied» и друг так и остался другом. :crazy2:

  9. [quote="OlgaT":3arnxzi2][quote="Лепин":3arnxzi2][quote="OlgaT":3arnxzi2][quote="Лепин":3arnxzi2]
    а такой вариант, поинтересней:
    определить, можно ли из заданной строки произвольной длины ( символы латинского алфавита в одном регистре) построить палиндром? Функция принимает массив и его длину (*char, int) и возвращает bool. То есть должна вернуть true на строки fafaggk, teet, tttt и false на строки asd, qwqwwe, fffg[/quote:3arnxzi2]
    Посчитать количество разных букв во всех строках, если нечетное количество для больше чем 1 буквы — false, else — true?[/quote:3arnxzi2]
    строка — одна. В задании несколько строк — это разные примеры.[/quote:3arnxzi2]
    В каждой строке считать количество букв.[/quote:3arnxzi2]
    Ольга, а вас не понимаю. В какой каждой строке? Есть одна (произвольная) строка — ее и надо проверить на возможность создания палиндрома.
    цель алгоритма формально вы написали (определить если в слове не более одной нечетной суммы отдельных букв).
    Теперь дело за малым — как это определить?
    Причем можно ожидать что тестируемая строка может быть и очень длинной.

  10. не мое
    public static boolean isPalindrome(String str) {
    return str.equals(new StringBuffer().append(str).reverse().toString());
    }

    [quote:dwlevnjn]
    my @words = qw($line);
    foreach my $word (@words) {
    my $check = reverse $word;
    if ($check eq $word) {
    [/quote:dwlevnjn]

    не понятно — ты разбиваешь строку на слова и проверяешь каждое слово на палиндром? разве так надо?

  11. [quote="OlgaT":1orataqe]
    Зачем еще раз вызвали? Вызвали один раз (n), запомнили, потом loop. Два подхода. Зачем третий?[/quote:1orataqe]

    да, логично что два

    public static boolean istPalindrom(char[] word){
    int i1 = 0;
    int i2 = word.length — 1;
    while (i2 > i1) {
    if (word[i1] != word[i2]) {
    return false;
    }
    ++i1;
    i2;
    }
    return true;
    }

  12. [quote="Algo":1x12987s]не мое
    public static boolean isPalindrome(String str) {
    return str.equals(new StringBuffer().append(str).reverse().toString());
    }

    [quote:1x12987s]
    my @words = qw($line);
    foreach my $word (@words) {
    my $check = reverse $word;
    if ($check eq $word) {
    [/quote:1x12987s]

    не понятно — ты разбиваешь строку на слова и проверяешь каждое слово на палиндром? разве так надо?[/quote:1x12987s]
    Я ж написал — грубая программа, проверки на слова из одного символа нет. Да, я разбиваю строку на слова, да — я переворачиваю слова и проверяю. Я не знаю как надо, я знаю, что это самый быстрый способ найти палиндромы в многострочном тексте с помощью скрипта набросанного за 2 минуты без выдумывания циклов третьего порядка.

    В общем… это… все мы тут мегаписькомеры. Локо пусть поостынет, а девочке учиться, учиться и еще раз учиться… думать нешаблонно.

  13. [quote="elefant":2w28ooar][quote="Algo":2w28ooar]не мое
    public static boolean isPalindrome(String str) {
    return str.equals(new StringBuffer().append(str).reverse().toString());
    }

    [quote:2w28ooar]
    my @words = qw($line);
    foreach my $word (@words) {
    my $check = reverse $word;
    if ($check eq $word) {
    [/quote:2w28ooar]

    не понятно — ты разбиваешь строку на слова и проверяешь каждое слово на палиндром? разве так надо?[/quote:2w28ooar]
    Я ж написал — грубая программа, проверки на слова из одного символа нет. Да, я разбиваю строку на слова, да — я переворачиваю слова и проверяю. Я не знаю как надо, я знаю, что это самый быстрый способ найти палиндромы в многострочном тексте с помощью скрипта набросанного за 2 минуты без выдумывания циклов третьего порядка.[/quote:2w28ooar]

    ну я так поняла что речь о том чтобы выкинуть пробелы и запятые и получить один палиндром типа Madam, in Eden I’m Adam

  14. [quote="Algo":1n2vq1bx]

    ну я так поняла что речь о том чтобы выкинуть пробелы и запятые и получить один палиндром типа Madam, in Eden I’m Adam[/quote:1n2vq1bx]
    Ну если вся строка может быть палиндромом, то тут еще проще — выкидываются все не-алфавитные regex’ом и вуаля строка-«оригинал» для реверса и сравнения…

  15. [quote="OlgaT":34p8d0od]
    Можно использовать map, где key = буква, value = количество.
    For each letter in string
    if map containsKey, value++, else add the key to the map, its value = 1.
    Потом считать values, которые % 2 != 0. Как только насчитали два, можно возвращать false.[/quote:34p8d0od]
    Обычная ошибка начинающего программиста «А давай-ка я напишу программу с использованием умных функций и операторов и все поймут какой я крутой…»

    В реале, чем проще код, тем он круче… и быстрее исполняется.

  16. [quote="elefant":2c691jyb][quote="Algo":2c691jyb]

    ну я так поняла что речь о том чтобы выкинуть пробелы и запятые и получить один палиндром типа Madam, in Eden I’m Adam[/quote:2c691jyb]
    Ну если вся строка может быть палиндромом, то тут еще проще — выкидываются все не-алфавитные regex’ом и вуаля строка-«оригинал» для реверса и сравнения…[/quote:2c691jyb]
    да, так правильней.
    С тз админа и обычного программера.
    А для студента надо небось еще и алгоритм поэффективней.

  17. [quote="Algo":3ux2ojga]
    да, так правильней.
    С тз админа и обычного программера.
    А для студента надо небось еще и алгоритм поэффективней.[/quote:3ux2ojga]
    Алгоритм здесь один единственный: прочел строку, удалил мусор, проверил по условию и вывел в случае результат. Эффективнее некуда. Я бы говорил об эффективности кода, а не алгоритма — ну путайте эти два разных понятия.
    Я вам говорю, что с утилитарной точки зрения перл будет представлять собой если не самый лучший, то один из лучших кодов. Ну и выполняться будет аллилуйя как быстро, так как заточен под текст.

    Это мое ИМХО.

  18. [quote="OlgaT":om8nwflq]Предложите свою версию[/quote:om8nwflq]
    Вам скрипт на Перле написать, который ваши строки палиндромы покажет ? Я выше написал код как найти слова-палиндромы в тексте, модифицируйте его чуток и будет вам еще более простой вариант для поиска строк.

  19. [quote="OlgaT":1h9c1nb5][quote="Algo":1h9c1nb5][quote="OlgaT":1h9c1nb5]Предложите свою версию, я с удовольствием послушаю опытных программистов.[/quote:1h9c1nb5]
    он сисадмин :lol:[/quote:1h9c1nb5]
    Поэтому простой код кажется ему сложным? :lol:[/quote:1h9c1nb5]
    Нет, Алго хочет сказать, что я не опытный программист :lol:

  20. [quote="elefant":k4rgwh3t][quote="OlgaT":k4rgwh3t]Предложите свою версию[/quote:k4rgwh3t]
    Вам скрипт на Перле написать, который ваши строки палиндромы покажет ? Я выше написал код как найти слова-палиндромы в тексте, модифицируйте его чуток и будет вам еще более простой вариант для поиска строк.[/quote:k4rgwh3t]
    да там Лепин давно уже условие задачи поменял, палиндромы уже никто не ищет

  21. [quote="elefant":f2ezlwvs][quote="OlgaT":f2ezlwvs]Предложите свою версию[/quote:f2ezlwvs]
    Вам скрипт на Перле написать, который ваши строки палиндромы покажет ? Я выше написал код как найти слова-палиндромы в тексте, модифицируйте его чуток и будет вам еще более простой вариант для поиска строк.[/quote:f2ezlwvs] не надо лезть в академическое «программирование» грязными лапами производственника! :s1:

  22. [quote="Algo":mw50a3o0][quote="elefant":mw50a3o0][quote="OlgaT":mw50a3o0]Предложите свою версию[/quote:mw50a3o0]
    Вам скрипт на Перле написать, который ваши строки палиндромы покажет ? Я выше написал код как найти слова-палиндромы в тексте, модифицируйте его чуток и будет вам еще более простой вариант для поиска строк.[/quote:mw50a3o0]
    да там Лепин давно уже условие задачи поменял, палиндромы уже никто не ищет[/quote:mw50a3o0]
    Лепин — профессор у Ольги? :lol:

  23. [quote="Ghost":2blxd0ym]не надо лезть в академическое «программирование» грязными лапами производственника! :s1:[/quote:2blxd0ym]
    Разбирал я скрипты вот таких «академиков»… бить их по пальцам линейкой нещадно.

  24. [quote="elefant":1kaco92u][quote="Ghost":1kaco92u]не надо лезть в академическое «программирование» грязными лапами производственника! :s1:[/quote:1kaco92u]
    Разбирал я скрипты вот таких «академиков»… бить их по пальцам линейкой нещадно.[/quote:1kaco92u]
    Видали мы программы написанные сисадминами :twisted:

  25. [quote="elefant":1wkn0x26][quote="Algo":1wkn0x26][quote="elefant":1wkn0x26][quote="OlgaT":1wkn0x26]Предложите свою версию[/quote:1wkn0x26]
    Вам скрипт на Перле написать, который ваши строки палиндромы покажет ? Я выше написал код как найти слова-палиндромы в тексте, модифицируйте его чуток и будет вам еще более простой вариант для поиска строк.[/quote:1wkn0x26]
    да там Лепин давно уже условие задачи поменял, палиндромы уже никто не ищет[/quote:1wkn0x26]
    Лепин — профессор у Ольги? :lol:[/quote:1wkn0x26]
    Та про палиндром она без нас написала

  26. [quote="elefant":tv5yjc7s][quote="Ghost":tv5yjc7s]не надо лезть в академическое «программирование» грязными лапами производственника! :s1:[/quote:tv5yjc7s]
    Разбирал я скрипты вот таких «академиков»… бить их по пальцам линейкой нещадно.[/quote:tv5yjc7s] подожди, вот щас выучат «алгоритмы», потом будут учить код-ревью, рефакторинг и как починить систему к утру, чтобы всё работало. :lol:

  27. [quote="Algo":vkjloomi][quote="elefant":vkjloomi][quote="Ghost":vkjloomi]не надо лезть в академическое «программирование» грязными лапами производственника! :s1:[/quote:vkjloomi]
    Разбирал я скрипты вот таких «академиков»… бить их по пальцам линейкой нещадно.[/quote:vkjloomi]
    Видали мы программы написанные сисадминами :twisted:[/quote:vkjloomi]
    Сисадмины не пишут, сисадмины шаманят :-)

    Если по существу, то да, мало сисадминов с программерским бэкграундом… но опять же зависит от опыта и возраста, старшее поколение очень вменяемое.

  28. [quote="Ghost":vh63hjxj]подожди, вот щас выучат «алгоритмы», потом будут учить код-ревью, рефакторинг и как починить систему к утру, чтобы всё работало. :lol:[/quote:vh63hjxj]
    ой я вас умоляю… не надо нас пугать ночной работой :lol:

  29. [quote="OlgaT":5a26wjxv][quote="loco":5a26wjxv][quote="OlgaT":5a26wjxv]
    А запомнить длину строки один раз, чтобы не бегать?[/quote:5a26wjxv]

    Дык, вызов strlen — уже пробежали[/quote:5a26wjxv]
    Ну так один раз, больше strlen не вызывать.[/quote:5a26wjxv]

    так мы ж все равно по массиву идем, for’ом — чтоб два раза не вставать, ээ, ходить

  30. [quote="elefant":1j8kx71m]
    Если по существу, то да, мало сисадминов с программерским бэкграундом… но опять же зависит от опыта и возраста, старшее поколение очень вменяемое.[/quote:1j8kx71m]

    Не вижу предпосылок особых для перехода из програмера в сисадмины.. Из системных инженеров еще могу понять… А програмерам мне кажется это неинтересно

  31. [quote="Algo":26lpe7ui]
    ну так он нативный С вспомнил. и реверс нынче во всех языках есть, и на перле кроме сисадминов уже не пишут…[/quote:26lpe7ui]

    зачем там реверс, там тупо 2 строки одинакового размера,
    for(int i = 0, j = len1 — 1; i < len1; ++i, j)
    {if(arr1[i] != arr2[j]) return false;}

  32. [quote="OlgaT":12jmj1f0]
    Зачем еще раз вызвали? Вызвали один раз (n), запомнили, потом loop. Два подхода. Зачем третий?[/quote:12jmj1f0]

    я, наверное, не очень понял вашу идею
    если сттроки не одинаковой длины, можно вылететь за пределы массива

  33. [quote="Algo":q8y3fgl6][quote="loco":q8y3fgl6]
    А вон там ниже Ольга отличное решение предложилв:)
    Хотя, в варианте tatata не должно сработать, или нет?
    Я, повторюсь, в алгоритмах не силен:(
    Надо подумать[/quote:q8y3fgl6]
    не должно сработаь, но сработает.
    напиши юнит тест ;)
    ЗЫ туплю, не сработает — 2 нечетных группы ttt aaa[/quote:q8y3fgl6]

    не, все верно, должна быть только одна

  34. [quote="Algo":tvxf71yp][quote="OlgaT":tvxf71yp]
    Зачем еще раз вызвали? Вызвали один раз (n), запомнили, потом loop. Два подхода. Зачем третий?[/quote:tvxf71yp]

    да, логично что два

    public static boolean istPalindrom(char[] word){
    int i1 = 0;
    int i2 = word.length — 1;
    while (i2 > i1) {
    if (word[i1] != word[i2]) {
    return false;
    }
    ++i1;
    i2;
    }
    return true;
    }[/quote:tvxf71yp]

    а, блин
    я думал надо определить, является ли одна строка палиндромом другой
    во тупой

  35. [quote="OlgaT":2jq1yoxl][quote="loco":2jq1yoxl][quote="OlgaT":2jq1yoxl]
    Зачем еще раз вызвали? Вызвали один раз (n), запомнили, потом loop. Два подхода. Зачем третий?[/quote:2jq1yoxl]

    я, наверное, не очень понял вашу идею
    если сттроки не одинаковой длины, можно вылететь за пределы массива[/quote:2jq1yoxl]
    Строка одна. И надо определить, читается ли она одинаково слева направо и справа налево.[/quote:2jq1yoxl]

    да, да, понял уже:)
    говорю же — туплю

    но в таком разе, strlen не нужен, можно сделать sizeof указателя(это быстрее, т.к. он прочтет 2 байта перед указателем) и получить размер выделенной памяти
    после чего в обратном направлении игнорировать любой символ, пока не встретим 0, ну а потом уж как и раньше

  36. [quote="Algo":3ny70aqz][quote="elefant":3ny70aqz][quote="Algo":3ny70aqz]

    ну я так поняла что речь о том чтобы выкинуть пробелы и запятые и получить один палиндром типа Madam, in Eden I’m Adam[/quote:3ny70aqz]
    Ну если вся строка может быть палиндромом, то тут еще проще — выкидываются все не-алфавитные regex’ом и вуаля строка-«оригинал» для реверса и сравнения…[/quote:3ny70aqz]
    да, так правильней.
    С тз админа и обычного программера.
    А для студента надо небось еще и алгоритм поэффективней.[/quote:3ny70aqz]

    не скажите, федор михайлыч
    я как-то очень здорово накололся строках этих богомерзких
    Все было сделано просто и красиво, тока строка оказалась — 3гб

  37. [quote="Algo":da8ff8gi][quote="elefant":da8ff8gi]
    Если по существу, то да, мало сисадминов с программерским бэкграундом… но опять же зависит от опыта и возраста, старшее поколение очень вменяемое.[/quote:da8ff8gi]

    Не вижу предпосылок особых для перехода из програмера в сисадмины.. Из системных инженеров еще могу понять… А програмерам мне кажется это неинтересно[/quote:da8ff8gi]
    ну, кому рутина неинтересна, те и перешли :-)

  38. [quote="loco":zvicca2x]
    а, блин
    я думал надо определить, является ли одна строка палиндромом другой
    во тупой[/quote:zvicca2x]

    гнать тебя… :lol:

    [img:zvicca2x]http://change-production.s3.amazonaws.com/photos/2/hu/dx/BLhudxWsaNkcrJY-556×313-noPad.jpg[/img:zvicca2x]

  39. [quote="OlgaT":1j9ne33h][quote="loco":1j9ne33h]
    но в таком разе, strlen не нужен, можно сделать sizeof указателя(это быстрее, т.к. он прочтет 2 байта перед указателем) и получить размер выделенной памяти
    после чего в обратном направлении игнорировать любой символ, пока не встретим 0, ну а потом уж как и раньше[/quote:1j9ne33h]
    Как Вы по размеру указателя (который 4 байт) узнаете длину строки?[/quote:1j9ne33h]

    указателя вряд ли, а для char[] sizeof вернет размер
    Но, похоже, С я забыл больше, чем думал, да

  40. [quote="OlgaT":1hk0jnao][quote="Algo":1hk0jnao]
    не должно сработаь, но сработает.
    напиши юнит тест ;)
    ЗЫ туплю, не сработает — 2 нечетных группы ttt aaa[/quote:1hk0jnao]
    Почему не сработает?[/quote:1hk0jnao]
    В смысле фалс вернет — не палиндром то есть

  41. [quote="elefant":1pucf9od][quote="Algo":1pucf9od][quote="elefant":1pucf9od]
    Если по существу, то да, мало сисадминов с программерским бэкграундом… но опять же зависит от опыта и возраста, старшее поколение очень вменяемое.[/quote:1pucf9od]

    Не вижу предпосылок особых для перехода из програмера в сисадмины.. Из системных инженеров еще могу понять… А програмерам мне кажется это неинтересно[/quote:1pucf9od]
    ну, кому рутина неинтересна, те и перешли :-)[/quote:1pucf9od]
    Хм у сисадминов креатива еще меньше, а ответственности больше…
    Ну в общем каждому свое

  42. [quote="loco":r2gv43fs][quote="OlgaT":r2gv43fs][quote="loco":r2gv43fs]
    но в таком разе, strlen не нужен, можно сделать sizeof указателя(это быстрее, т.к. он прочтет 2 байта перед указателем) и получить размер выделенной памяти
    после чего в обратном направлении игнорировать любой символ, пока не встретим 0, ну а потом уж как и раньше[/quote:r2gv43fs]
    Как Вы по размеру указателя (который 4 байт) узнаете длину строки?[/quote:r2gv43fs]

    указателя вряд ли, а для char[] sizeof вернет размер
    Но, похоже, С я забыл больше, чем думал, да[/quote:r2gv43fs]
    [code:r2gv43fs]
    int len = sizeof array / sizeof array[0];[/code:r2gv43fs]

  43. [quote="Ghost":3d4nt1tv][quote="loco":3d4nt1tv][quote="OlgaT":3d4nt1tv][quote="loco":3d4nt1tv]
    но в таком разе, strlen не нужен, можно сделать sizeof указателя(это быстрее, т.к. он прочтет 2 байта перед указателем) и получить размер выделенной памяти
    после чего в обратном направлении игнорировать любой символ, пока не встретим 0, ну а потом уж как и раньше[/quote:3d4nt1tv]
    Как Вы по размеру указателя (который 4 байт) узнаете длину строки?[/quote:3d4nt1tv]

    указателя вряд ли, а для char[] sizeof вернет размер
    Но, похоже, С я забыл больше, чем думал, да[/quote:3d4nt1tv]
    [code:3d4nt1tv]
    int len = sizeof array / sizeof array[0];[/code:3d4nt1tv][/quote:3d4nt1tv]

    у меня ж массив char, можно и не делить

  44. [quote="OlgaT":2uhkx1ud][quote="Algo":2uhkx1ud][quote="OlgaT":2uhkx1ud][quote="Algo":2uhkx1ud]
    не должно сработаь, но сработает.
    напиши юнит тест ;)
    ЗЫ туплю, не сработает — 2 нечетных группы ttt aaa[/quote:2uhkx1ud]
    Почему не сработает?[/quote:2uhkx1ud]
    В смысле фалс вернет — не палиндром то есть[/quote:2uhkx1ud]
    Почему фалс? Функция принимает одну строку — то есть либо ttt or aaa. Оба ttt and aaa палиндромы. Функция вернет тру, потому что только одна буква встречается нечетное количество раз.[/quote:2uhkx1ud]
    потому что пример был [quote:2uhkx1ud] в варианте tatata не должно сработать, или нет?[/quote:2uhkx1ud]

  45. [quote="OlgaT":2oqxth6s]
    Можно использовать map, где key = буква, value = количество.
    For each letter in string
    if map containsKey, value++, else add the key to the map, its value = 1.
    Потом считать values, которые % 2 != 0. Как только насчитали два, можно возвращать false.[/quote:2oqxth6s]

    Я бы в процессе считал количество пар
    Если длина четная, то numOfPairs*2 < lehgth : false
    если нечетная, то (numOfPairs*2+1) < length : false

Ответить