Указатели, чтобы узнать, как использовать DTrace

Насколько я понял эту проблему, мы можем найти палиндромы вокруг центрального индекса и развернуть наш поиск в обоих направлениях, справа и слева от центра. Учитывая это и зная, что на углах ввода нет палиндрома, мы можем установить границы на 1 и длину-1. Обращая внимание на минимальную и максимальную границы String, мы проверяем, совпадают ли символы в положениях симметричных индексов (справа и слева) для каждого центрального положения, пока мы не достигнем нашего максимального верхнего граничного центра.

Внешний цикл равен O (n) (max n-2 итерации), а внутренний цикл while - O (n) (max вокруг (n / 2) - 1 итераций)

Вот мой Java, используя пример, предоставленный другими пользователями.

class LongestPalindrome {

    /**
     * @param input is a String input
     * @return The longest palindrome found in the given input.
     */
    public static String getLongestPalindrome(final String input) {
        int rightIndex = 0, leftIndex = 0;
        String currentPalindrome = "", longestPalindrome = "";
        for (int centerIndex = 1; centerIndex < input.length() - 1; centerIndex++) {
            leftIndex = centerIndex - 1;  rightIndex = centerIndex + 1;
            while (leftIndex >= 0 && rightIndex < input.length()) {
                if (input.charAt(leftIndex) != input.charAt(rightIndex)) {
                    break;
                }
                currentPalindrome = input.substring(leftIndex, rightIndex + 1);
                longestPalindrome = currentPalindrome.length() > longestPalindrome.length() ? currentPalindrome : longestPalindrome;
                leftIndex--;  rightIndex++;
            }
        }
        return longestPalindrome;
    }

    public static void main(String ... args) {
        String str = "HYTBCABADEFGHABCDEDCBAGHTFYW12345678987654321ZWETYGDE";
        String longestPali = getLongestPalindrome(str);
        System.out.println("String: " + str);
        System.out.println("Longest Palindrome: " + longestPali);
    }
}

Выход этого параметра следующий:

marcello:datastructures marcello$ javac LongestPalindrome
marcello:datastructures marcello$ java LongestPalindrome
String: HYTBCABADEFGHABCDEDCBAGHTFYW12345678987654321ZWETYGDE
Longest Palindrome: 12345678987654321
13
задан Community 23 May 2017 в 12:00
поделиться

5 ответов

Я сделал 35 минимальных видео и показал некоторые примеры начинающего DTrace, что можно найти здесь: http://cocoasamurai.blogspot.com/2008/05/dtrace-for-cocoa-developers.html , которые были предназначены для представления DTrace Разработчикам Какао, но это может работать на кого-либо действительно

12
ответ дан Colin Wheeler 23 May 2017 в 22:00
поделиться

Я нашел, что чтение dtrace версия обычных администраторских контрольных инструментов Mac OS X было большой справкой truss-> dtruss. Существует по крайней мере дюжина различных сценариев, которые можно прочитать. (Большая часть начала "d".)

также существует /Developer/Applications/Instruments.app, который является графическим приложением, которое генерирует dtrace сценарии.

кроме того, Википедия страница DTrace имеет загрузки ссылок, которые должны помочь.

4
ответ дан mat 23 May 2017 в 12:00
поделиться
  • 1
    Я Редактирование ответ могу Вы пробовать. – JPBlanc 3 June 2011 в 06:38

Можно также попробовать "dtrace инструментарий", он имеет сценарии для большого количества контролирующих целей дать Вам, удар запускается.

Также можно присоединить "Инструменты" XCode к любому процессу. После того, как это дает Вам общее представление о Вашем приложении, которое можно дать попытке записать собственные сценарии

2
ответ дан Robert Gould 23 May 2017 в 22:00
поделиться
  • 1
    @Ben: Да, that' s методические рекомендации, но примечание, что это isn' t на самом деле обязательный. Я думаю, что мой фрагмент кода работал бы, как записано. (Любой, кто на самом деле пишет код, однако, должен следовать за Ben' s совет.) – Harry Johnston 27 March 2012 в 07:20
  • 1
    Кроме того, загрузка и хранилище действительно больше, чем просто неделимы. Они также определяют требования упорядочивания памяти. Только если Вы определяете, что memory_order_relaxed - они просто неделимый. – Sebastian Redl 9 March 2012 в 23:02

Посмотрите видео Brian Cantrill DTrace. Это - большой основанный на демонстрации разговор, и Cantrill является одним из создателей DTrace.

http://video.google.com/videoplay?docid=-8002801113289007228

6
ответ дан Paul Robinson 23 May 2017 в 22:00
поделиться
  • 1
    Спасибо, но я получаю различное предупреждение: ldap_search (): Поиск: Получены частичные результаты и направление – Jake 3 June 2011 в 15:58
Другие вопросы по тегам:

Похожие вопросы: